1、创建临时表 ON COMMIT PRESERVE ROWS 事务级别的,默认是回话级别的
DECLARE
v_exists number;
BEGIN
SELECT count(*) INTO v_exists FROM ALL_OBJECTS WHERE OBJECT_NAME = 'TEMP1';
IF v_exists > 0 THEN
EXECUTE IMMEDIATE 'drop table TEMP1';
END IF;
EXECUTE IMMEDIATE'
CREATE GLOBAL TEMPORARY TABLE TEMP1
(
ITEMCODE VARCHAR(100),
SQRQ VARCHAR(100)
) ON COMMIT PRESERVE ROWS';
END ;
2、插入多条数据
insert into tablename
select n1,n2 from dual union all
select n3,n4 from dual union all
select n5,n6 from dual
DECLARE
v_exists number;
BEGIN
SELECT count(*) INTO v_exists FROM ALL_OBJECTS WHERE OBJECT_NAME = 'TEMP1';
IF v_exists > 0 THEN
EXECUTE IMMEDIATE 'drop table TEMP1';
END IF;
EXECUTE IMMEDIATE'
CREATE GLOBAL TEMPORARY TABLE TEMP1
(
ITEMCODE VARCHAR(100),
SQRQ VARCHAR(100)
) ON COMMIT PRESERVE ROWS';
END ;
2、插入多条数据
insert into tablename
select n1,n2 from dual union all
select n3,n4 from dual union all
select n5,n6 from dual