Oracle Sql:可以在其中创建临时表的过程
问题描述:
我是Oracle Sql的新手,面临一个问题:
I am new to Oracle Sql and facing an issue :
我想在过程内部创建一个临时表.
I want to create a temporary table inside procedure .
喜欢:
CREATE PROCEDURE P
AS
BEGIN
CREATE TEMPORARY TABLE A(ID int);
END P;
但是这给我一个错误
如何在过程中创建临时表.
How Can I Create a temporary table inside procedure.
我在stackoverflow上看到了其他答案,但这不能正确回答我的问题 你能帮我吗?
I have seen other answers on stackoverflow but that doesn't answer my question properly Can you please help me out ?
答
You could use Dynamic SQL with EXECUTE IMMEDIATE:
CREATE OR REPLACE
PROCEDURE p
AS
BEGIN
EXECUTE IMMEDIATE 'CREATE TEMPORARY TABLE A(id NUMBER)...etc';
END p;
显然,您必须确保EXECUTE IMMEDIATE语句中的语法正确.
Obviously you'll have to ensure your syntax is correct within the EXECUTE IMMEDIATE statement.
希望有帮助.