zeh123456 2015-09-18 10:15 采纳率: 0%
浏览 2043

oracle临时会话表在存储过程中的使用

问题:

在将db2的存储过程转换为oracle的过程中,涉及到临时会话表,会出现问题:

具体描述:

原db2中的存储过程涉及临时会话表的部分:
--创建临时会话表
DECLARE GLOBAL TEMPORARY TABLE COL_NAMES(
id integer,
COLNAMES varchar(50)
)WITH REPLACE NOT LOGGED on commit preserve ROWS ;
DELETE FROM SESSION.COL_NAMES;
commit;
--向临时会话表中插入数据
INSERT INTO SESSION.COL_NAMES values(1, 'ARRIVAL');
INSERT INTO SESSION.COL_NAMES values(2, 'SORTOUT');
INSERT INTO SESSION.COL_NAMES values(3, 'RBACK');
INSERT INTO SESSION.COL_NAMES values(4, 'TRANSOUT');
INSERT INTO SESSION.COL_NAMES values(5, 'TRANSBACK');
commit;
--游标中用到临时会话表
FOR c2 AS loop2 CURSOR WITH HOLD FOR

SELECT ID,COLNAMES FROM SESSION.COL_NAMES ORDER BY id WITH ur
DO
execute immediate replace(v_exec_0,'ARRIVAL',c2.COLNAMES);
END FOR;

在oracle中进行转换:
CREATE OR REPLACE PROCEDURE K_TJBS_D IS
--创建游标,使用到了临时会话表
CURSOR csr3 is

SELECT ID,COLNAMES FROM COL_NAMES ORDER BY id ;
BEGIN

--创建临时会话表
temp_tab_str := 'create GLOBAL TEMPORARY TABLE COL_NAMES(id integer, COLNAMES varchar2(50)) on commit preserve ROWS ';
execute immediate temp_tab_str;
DELETE FROM COL_NAMES;
commit;
--向临时会话表中插入数据
INSERT INTO COL_NAMES values(1, 'ARRIVAL');
INSERT INTO COL_NAMES values(2, 'SORTOUT');
INSERT INTO COL_NAMES values(3, 'RBACK');
INSERT INTO COL_NAMES values(4, 'TRANSOUT');
INSERT INTO COL_NAMES values(5, 'TRANSBACK');
commit;
--使用游标
FOR c1 in csr3 loop

execute immediate replace(v_exec_0,'ARRIVAL',c2.COLNAMES);
END loop;
这样转换,编译不会通过,会在创建游标csr3的时候报:表或视图COL_NAMES不存在的错误,oracle版本:oracle 11g
请问:在这种情况下,oracle应该中如何转换,多谢!

  • 写回答

4条回答 默认 最新

  • Robot-S 2015-09-18 10:19
    关注

    一 临时表语法
     
        临时表只在Oracle 8i 以及以上产品中支持。  
        语法:
    create global temporary table 临时表名 on commit preserve/delete rows

    --preserve:SESSION级的......
    答案就在这里:ORACLE 在存储过程中使用临时表
    ----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

    评论

报告相同问题?

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM