oracle临时存储表,oracle存储过程中使用临时表 | 学步园

这篇博客介绍了如何在存储过程中创建并使用全局临时表`admin_work_area`,展示了声明游标、动态SQL插入数据和提交事务的过程。在循环中,数据从`ims.TABLE1`获取并插入到临时表,然后计算插入的记录数。最后,对表进行权限授予。
摘要由CSDN通过智能技术生成

--------在存储过程中使用临时表---------------------

--创建临时表

CREATE GLOBAL TEMPORARY TABLE admin_work_area

(startdate DATE,

enddate DATE,

class CHAR(20))

ON COMMIT DELETE ROWS;

----------------------------------------------------------------------------------

/* Formatted on 2011/10/12 20:15 (Formatter Plus v4.8.8) */

DECLARE

CURSOR cr_prjt_cds

IS

SELECT  price   FROM ims.TABLE1;

selSql varchar2(1000);

v_prjt_cd   number;

I_cout int;

strsql      VARCHAR2 (2000);

updateSql   varchar2(2000);

BEGIN

OPEN cr_prjt_cds;

selSql:='select count(1) from ims.admin_work_area ';

LOOP

FETCH cr_prjt_cds

INTO v_prjt_cd;

EXIT WHEN cr_prjt_cds%NOTFOUND;

strsql:='insert into ims.admin_work_area values(sysdate,sysdate,'||v_prjt_cd||')' ;--将数据插入到监理表

--strsql:=strsql||'  union all  '||strsql;

EXECUTE IMMEDIATE strsql;

--   COMMIT;

END LOOP;

EXECUTE IMMEDIATE selSql into I_cout;--提交前有值

CLOSE cr_prjt_cds;

commit;

EXECUTE IMMEDIATE selSql into I_cout;--提交后被清空

END;

--给表授权

--GRANT SELECT,insert,delete,update ON admin_work_area  TO sys;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值