社区
Oracle
帖子详情
帮我看一下这个过程错在哪里?
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;
...全文
103
8
打赏
收藏
帮我看一下这个过程错在哪里?
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;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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的权限是不行的。
二,方案二,见你的另一张贴子
记得给分
非计算机专业,转行程序员?我可以
帮
你
07年非计算机专业毕业到现在,已经在互联网行业经历过了12个年头,曾在搜狗,金山任职后端工程师,也曾创业,走过了很多的弯路,对于计算机的系统知识也逐步建立起来,不过这是个比较痛苦的
过程
计算机行业的...
理论三:面向对象相比面向
过程
有哪些优势?面向
过程
真的过时了吗?
文章目录理论三:面向对象相比面向
过程
有哪些优势?面向
过程
真的过时了吗?什么是面向
过程
编程与面向
过程
编程语言?面向对象编程相比面向
过程
编程有哪些优势?1.OOP 更加能够应对大规模复杂程序的开发2.OOP 风格的...
什么时候使用存储
过程
比较适合?
存储
过程
(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储
过程
的名字并给出参数(如果该存储
过程
带有参数)...
毒药?解药?
题目描述 羽毛笔和im是抽签到同一个考场的,她们突然闻到一阵刺鼻的...可是我一个不小心,每种药都小小地配
错
了一点原料,所以这些药都有可能在治愈某些病症的同时又使人患上某些别的病症……(im:那…那是解药..
到底为什么我们总是
错
过跃阶?
李笑来 我不说你知道吧? BC首富 一个BC可以换多少人民币? 哦不好意思 是7000+美刀 而他有十万个!!! 而他有十万个!!! 而他有十万个!!! 所以他是BC首富 早期有人建议我买BC 2009年BC刚刚出现时,价格还不到1...
Oracle
17,086
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章