譬如:
1、Table01、Table02进行关联;
2、将Table01、Table02关联的结果集与Table03的相关栏未值进行合并处理后,将满足条件的记录集放入临时表内返回;
3、问题:
3.1、应如何创建临时表来存放满足条件的记录集?
3.2、所创建的临时表是否是在存储过程执行时创建,执行完毕后自动销毁?
1、Table01、Table02进行关联;
2、将Table01、Table02关联的结果集与Table03的相关栏未值进行合并处理后,将满足条件的记录集放入临时表内返回;
3、问题:
3.1、应如何创建临时表来存放满足条件的记录集?
3.2、所创建的临时表是否是在存储过程执行时创建,执行完毕后自动销毁?
CREATE GLOBAL TEMPORARY TABLE test
(col1 varchar2(20),
col2 varchar2(20),
col3 number(10,2),
ON COMMIT DELETE ROWS;
你可以按照如下步骤进行。
1。在程序中执行存储过程前,你设置autocommit为false,
2。执行存储过程,往临时表插入满足条件的记录。
3。在程序中查询临时表得到数据
4。设置autocommit为true。
解决方法:1.改变设计,要求增加一个临时表;
2.用table类型的变量。
TYPE TYP_ITEM_REC IS RECORD
(
V_ITEM_NM VARCHAR2(200),
N_RECORD_NUMBER NUMBER
);
TYPE TYP_ITEM_TAB IS TABLE OF TYP_ITEM_REC INDEX BY BINARY_INTEGER;