首页 文章

无法在Oracle中的存储过程中创建临时表

提问于
浏览
-2

我正在尝试在Oracle中创建临时表 .

我在SQL Server中这样做过:

IF object_id('tempdb..#qcCSTemp') IS NOT NULL   
BEGIN
    DROP TABLE #qcCSTemp
END

我想在Oracle中有类似的东西 . 我试过这段代码:

create global temporary table temptable (mgr number);

但是我收到一个错误:

错误(32,7):PLS-00103:当遇到以下情况之一时遇到符号“CREATE”:(如果循环模式为空,则编译结束异常退出,如果循环mod为空pragma,则返回选择更新,同时使用<< continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge

请指教 .

提前致谢 .

1 回答

  • 0
    begin
          create global temporary table temptable (mgr number);
        end;
        /
    

    ORA-06550:第2行第3列:PLS-00103:当遇到以下情况之一时遇到符号“CREATE”:

    (开始情况声明退出goto if loop mod null pragma raise返回选择更新,同时使用<< continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge

    begin
          execute immediate 'create global temporary table temptable (mgr number)';
       execute immediate 'insert into   temptable select pct_free from dba_tables';
       execute immediate 'insert into   temptable  values(-99)'; 
        end;
        /
    

    4 / PL / SQL过程成功完成

    select count(*) from temptable;
    
         0
    

相关问题