oracle存储过程中使用临时表

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

--创建临时表
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、付费专栏及课程。

余额充值