免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1046 | 回复: 3
打印 上一主题 下一主题

请各位帮忙看看这个存储过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-07 21:08 |只看该作者 |倒序浏览
(z_nc YONGHU.NC%type,
z_xm YONGHU.XM%type,
z_bm YONGHU.BM%type,
z_mm YONGHU.MM%type,
z_mm1 YONGHU.MM%type) AS
zc_bh YONGHU.BH%type;
z_bh YONGHU.BH%type;
z_dj YONGHU.DJ%type default 1;
BEGIN
  select count(BH) into zc_bh from YONGHU where (NC=z_nc and MM=z_mm);
  select max(BH)+1 into z_bh from YONGHU;
  if zc_bh=0 and z_mm=z_mm1 then
   insert into YONGHU(BH,XM,BM,DJ,MM,NC) values(z_bh,z_xm,z_bm,z_dj,z_mm,z_nc);
   create table ADMIN.z_nc
    (zybh varchar2(20) not null,
     zymc char(20),
     zylx char(20))
     tablespace "YONGHU";
  else
    PAGE1;
  end if;  
END;
红色部分是我后加的 未加之前可以编译,加入这段创建表的语句后就编译不通了 错误在“create table.......这一句,请问斑竹及各位老大是什么原因 在线等,谢谢

论坛徽章:
0
2 [报告]
发表于 2004-05-08 11:03 |只看该作者

请各位帮忙看看这个存储过程

存储过程中是不能直接调用DDL的。即CREATE TABLE 命令。
你可以这样调

EXECUTE IMMEDIATE 'create table ADMIN.z_nc
(zybh varchar2(20) not null,
zymc char(20),
zylx char(20))
tablespace "YONGHU";';
但你的用户需要有CREATE TABLE的权限

论坛徽章:
0
3 [报告]
发表于 2004-05-09 11:21 |只看该作者

请各位帮忙看看这个存储过程

谢谢 还有 我的z_nc是个变量 如何让他表示,也就是说 我的z_nc可能是其他字符 我要让他如何识别其为变量。谢谢

论坛徽章:
0
4 [报告]
发表于 2004-05-10 15:33 |只看该作者

请各位帮忙看看这个存储过程

参考:
自己拼接表名

declare
  strsql varchar2(60);
  cursor_name INTEGER;
  ret INTEGER;
BEGIN
  strsql:='truncate table tbl_s_1861_30';
  cursor_name := DBMS_SQL.OPEN_CURSOR;
  DBMS_SQL.PARSE(cursor_name, strsql, 0);
  ret := DBMS_SQL.EXECUTE(cursor_name);
  DBMS_SQL.CLOSE_CURSOR(cursor_name);
END;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP