例子,过程里建临时表的,并用游标返回临时表中数据:
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;
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;
解决方案 »
- 求助xmldb中文问题
- 我建了一个表,怎么才能看它的表空间
- oracle10g-XE (快捷版)的client能否链接到oracle10g server(非快捷版的)数据库么?
- 专业的oracle人才请进来看看
- 在WINDOWS操作系统重新启动前要不要手工停止ORACLE服务,如果不停止,系统会不会自动停止服务后,才重新启动电脑呢
- ORACLE11i安装失败
- 在线等待中》》》
- 连接oracle9i库的问题
- exp 和 imp 的命令格式是怎样写的?是在sqlplus下写的吗?谢了!
- 请问Oracle里面如何用存储过程填充.Net里面的DataSet?
- 用PB和Oracle开发厂里的无纸化办公系统,请问用什么版本搭配最好?
- 实现按年龄统计的一个问题
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;
/