如何在PL/SQL创建临时表??

wolfzw 2003-10-09 05:15:23
请问如何在PL/SQL的存储过程中创建临时表(功能相当于在sql server存储过程中的临时表一样).
请帮忙!!
...全文
83 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-10-09
  • 打赏
  • 举报
回复
create procedure pro
as
str varchar2(100);
begin
str:='GLOBAL TEMPORARY TABLE myTemp ON COMMIT PRESERVE ROWS as select * from yourtable where 1=2';
Execute immediate str;--要有此权限,grant create any table to 当前用户
end;
/
Strawberry79 2003-10-09
  • 打赏
  • 举报
回复
例子,过程里建临时表的,并用游标返回临时表中数据:
create or replace procedure ttable(i_cursor out ysq.aboutreport.t_cursor) is
strCreateTable varchar2(500);
vCount int;
begin

select count(*) into vCount from user_all_tables where lower(TABLE_NAME) = 'mytemp';

if vCount=0 then
--EXECUTE IMMEDIATE ' drop table myTemp';
strCreateTable:='CREATE GLOBAL TEMPORARY TABLE myTemp
(id VARCHAR(10),name varchar2(50))
ON COMMIT PRESERVE ROWS ';
Execute immediate strCreateTable;--建表
end if;

insert into mytemp values('1','sandy');
insert into mytemp values('2','may');

open i_cursor for select * from mytemp;
commit;
end ttable;

17,075

社区成员

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

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