create or replace procedure aa is
str varchar2(500);
begin
str:='CREATE  GLOBAL TEMPORARY TABLE test
        (col1 CHAR(20),
         col2 CHAR(20),
         col3 CHAR(20))
      ON COMMIT DELETE ROWS;'
execute immediate str;     
end aa;

解决方案 »

  1.   

    [execute immediate str;]这句报错:
         pls-00103:出现符号"execute”在需要下列之一时:[*@%&=+-</>at in is nod not rem<anexponent{**}>..........
      

  2.   

    ROWS;'
    改为ROWS';顺便问一句:既然你要建立临时表,为什么要在储存过程里面创建?
      

  3.   

    create or replace procedure tbl is
    str varchar2(500);
    begin
    str:='CREATE  GLOBAL TEMPORARY TABLE tbl(id number(2));'
    execute immediate str;     
    end tbl;