oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。

execute immediate 'CREATE GLOBAL TEMPORARY TABLE temp_sc_gds_product_spec (
ID CHAR(32 BYTE),
CREATE_BY VARCHAR2(32 BYTE),
CREATE_TIME DATE,
UPDATE_BY VARCHAR2(32 BYTE),
UPDATE_TIME DATE,
TYPE_ID VARCHAR2(32 BYTE),
SPEC_ID VARCHAR2(32 BYTE),
SPEC_VALUE_ID VARCHAR2(32 BYTE),
SPEC_VALUE VARCHAR2(128 BYTE),
GOODS_ID VARCHAR2(32 BYTE),
PRODUCT_ID VARCHAR2(32 BYTE)
) ON COMMIT DELETE ROWS ';

sqls:='INSERT INTO temp_sc_gds_product_spec
(ID, CREATE_TIME,
SPEC_ID,
SPEC_VALUE_ID,
GOODS_ID,
PRODUCT_ID
)
VALUES
(UUID(), sysdate,
specId,
strIndexSubstr,
goodsId,
productId
)';
execute immediate sqls ;
用EXCUSE IMMEDIATE执行的时候会出错,提示“列在此处不允许”;
specId, strIndexSubstr, goodsId, productId这些字均有值,且类型与表字段类型相同。

第1个回答  2012-03-31
都可以的
相似回答
大家正在搜