pl/sql创建临时表

来源:互联网 发布:现金结算股份支付 知乎 编辑:程序博客网 时间:2024/05/17 23:03

可以有以下几种方法:

1.

CREATE   GLOBAL   TEMPORARY   TABLE   TEST_T(   ……)ON   COMMIT   DELETE   ROWS;

例如:

 CREATE GLOBAL TEMPORARY TABLE TEMP_ROLE_AUTHORITY
        (
                ROLE_ID                                NUMBER(4) NOT NULL,
                ROLE_NAME                        NVARCHAR2(25) NOT NULL,
                AUTHORITY_ID  NUMBER(4) NOT NULL
        ) ON COMMIT DELETE ROWS;
2.

pl/sql建表的问题其实就是在pl/sql语言中能否执DDL语句的问题,Oracle中提供一包可以完成这个任务,它是DBMS_UTILITY包中的EXEC_DDL_STATEMENT存储过程。  
  举例:  
  BEGIN  
      DBMS_UTILIEY.EXEC_DDL_STATEMENT(  
          'CREATE   TABLE   tab_exam  
              (   name   varchar2(10),  
                  age     number(3),  
              )'  
          );  
  END;