建临时表的问题,请赐教!

liugaqiong 2003-08-24 09:37:41
我要在一Procedure中建立一临时表,最后Drop掉它,该如何使用?谢谢!
我曾经按照某种方法建过,可是提示说权限不够,我该如何做?
...全文
33 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-08-27
  • 打赏
  • 举报
回复
在pl/sql中执行ddl语句,要赋相关权限:
grant create any table to user_name;
grant drop any table to user_name;
yangqingdelphi 2003-08-27
  • 打赏
  • 举报
回复
你如果要在oracle建临时表,你这个表不是所谓的临时表.
在Oracle8i中,可以创建以下两种临时表:
1。会话特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> )
ON COMMIT PRESERVE ROWS;

2。事务特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification> )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。
下面两句话再贴一下:
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。

liugaqiong 2003-08-26
  • 打赏
  • 举报
回复
因为我要在存储过程当中使用临时表,这点Sql server要比oracle强很多
l2g32003 2003-08-25
  • 打赏
  • 举报
回复
grant create table to user_name;
grant drop table to user_name;

你在procedure建表 然后又删掉干嘛
在procedure建表 在同一procedure中很难操作这个表
LGQDUCKY 2003-08-25
  • 打赏
  • 举报
回复
需要给你的用户授权,


grant cretae table to user_name;
bzszp 2003-08-25
  • 打赏
  • 举报
回复
权限不够,是你的用户权限问题
有没有把这个角色(RESOURCE)赋给用户
LGQDUCKY 2003-08-25
  • 打赏
  • 举报
回复
str varchar2(60);
begin
str:='create table table_name (a varchar2(10),....)';
execute immediate str;

str:='drop table table_name';
execute immediate str;
end;

17,082

社区成员

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

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