create or replace procedure sample
as
ID VARCHAR(20);
BEGIN
execute immediate
'CREATE GLOBAL TEMPORARY TABLE UPDATE_COLUMN_NO_TP
(
NAME VARCHAR2(256)
)';
INSERT INTO UPDATE_COLUMN_NO_TP
SELECT SRC_PK_COLUMNS.PK_KEY
FROM SRC_PK_COLUMNS
WHERE NOT EXISTS (
SELECT 1
FROM TGT_PK_COLUMNS
WHERE TGT_PK_COLUMNS.ID = SRC_PK_COLUMNS.ID);
END;
错误是:创建并插入一行到表中的存储过程
The table is no exist.
所以,我要为这种情况最好的解决方案。在我的存储过程中,我有10个临时表。所有这些都是动态创作和插入。
全局临时表的整点是,你不即时创建它们。你创建一次,然后在需要时使用它们。 (你不能修复那个程序) – Mat 2013-03-27 09:38:24
[如何在oracle存储过程中创建和使用临时表?](http://stackoverflow.com/questions/9310860/how-to-create- oracle11存储过程) – 2013-03-27 11:08:33