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 ?

您可以将动态SQL与

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.

希望有帮助.