create or replace procedure sp_test
is
...
begin
   CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
   ON COMMIT PRESERVE ROWS;
end;

解决方案 »

  1.   

    On Oracle7 version , you could only achieve it by using DBMS_SQL package .
      

  2.   

    1.先编写存储过程:jiezhi的很好;
    2.调用上面的存储过程,可以在sql/plus中执行如下:
    sql>begin
    sql>sp_test
    sql>end;
    sql>/
      

  3.   

    to 相逢何必曾相识:
    我在dba中创建一个存储过程如下:(Pctype   IN  VARCHAR(1))
    IS
      
    BEGIN
      Create Table tb_daly_currfile_tmp( 
            time_sect   Varchar2(8)     Not Null, 
            pertype     Varchar2(100)   Not Null,
            unit_num    numeric(20, 0),
            stat_person Char(14)        Not Null,
            start_time  Char(14)        Not Null
          );
    END;
    但编译不通过,按照你在上面写的方式也编译不通过,请大虾你帮帮忙吧!多谢了!(我用的是Oracle8i)
      

  4.   

    我试了 jiezhi(相逢何必曾相识) 的例子,
    执行命令exec sp_test后提示错误:ERROR 位于第 1 行:
    ORA-01031: 权限不足
    ORA-06512: 在"SCOTT.SP_TEST", line 5
    ORA-06512: 在line 1为什么权限不足?
      

  5.   

    需要显示授权 :grant create table to username;