帮我看一下这个过程错在哪里?

Caobiao 2003-10-17 11:23:16
create or replace procedure ProName
is
begin
......
create global temporary table Tmp_EspecialUser (
EspecialUserID varchar(11) null,
CutListID varchar(11) null,
Detail varchar(255) null
) on commit preserve rows ;

......

end proName;
...全文
96 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
LGQDUCKY 2003-10-17
  • 打赏
  • 举报
回复
我是说存储过程里不能直接调用数据库定义语句。需要动态SQL来执行。
对应数据库操纵语句是可以直接写的,如:

INSERT INTO TABLE_NAME VALUES('AA',334);
就可以了
Caobiao 2003-10-17
  • 打赏
  • 举报
回复
但是我接下来就要对这个临时表进行很多操作那不是每个都得进行动态操作?
例如我要对那进行数据的插入,
然后对它定义游标对里面的数据进行分析。
如果每个操作都用execute immediate str;这种形式那不惨了呀?
有没有解决方案?谢谢!
LGQDUCKY 2003-10-17
  • 打赏
  • 举报
回复
错在存储过程里不能直接调用数据库定义语句。需要动态SQL来执行。
而且要明确给用户CREATE TABLE的权限。

str := ' create global temporary table Tmp_EspecialUser (
EspecialUserID varchar(11) null,
CutListID varchar(11) null,
Detail varchar(255) null
) on commit preserve rows ';
execute immediate str;
beckhambobo 2003-10-17
  • 打赏
  • 举报
回复
create or replace procedure ProName
is
str varchar2(100);
begin
......
str:='create global temporary table Tmp_EspecialUser (
EspecialUserID varchar(11) null,
CutListID varchar(11) null,
Detail varchar(255) null
) on commit preserve rows ';
execute immediate str; --grant create any table to 当前用户
......

end proName;
neil2000 2003-10-17
  • 打赏
  • 举报
回复
还要给用户"create any table"的系统权限,只给DBA的权限是不行的。
jiezhi 2003-10-17
  • 打赏
  • 举报
回复
use dynamic sql:
execute immediate 'create ...';
Caobiao 2003-10-17
  • 打赏
  • 举报
回复
问题还没解决,先结一张贴子,慰劳兄弟们,接分!
JCC0128 2003-10-17
  • 打赏
  • 举报
回复
方案一

create or replace procedure ProName
is
str varchar2(100);
begin
......
str:='create global temporary table Tmp_EspecialUser (
EspecialUserID varchar(11) null,
CutListID varchar(11) null,
Detail varchar(255) null
) on commit preserve rows ';
execute immediate str; --grant create any table to 当前用户
......

end proName;


同时 还要给用户"create any table"的系统权限,只给DBA的权限是不行的。

二,方案二,见你的另一张贴子
记得给分

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧