create or replace procedure SP_MSG(oi_return out number)
 
begin
  create GLOBAL TEMPORARY TABLE tbl_tmp_MSG_COUNT(serv_num
                                                      varchar2(20)) ON COMMIT PRESERVE ROWS;end SP_MSG;报了这个错
Compilation errors for PROCEDURE LJ_DW.SP_MSGError: PLS-00103: Encountered the symbol "BEGIN" when expecting one of the following:
       
          ; is with authid as cluster order using external
          deterministic parallel_enable pipelined
Line: 3
Text: begin难道需要动态建立临时表,在存储过程中?

解决方案 »

  1.   


    CREATE OR REPLACE PROCEDURE SP_MSG(oi_return out NUMBER) AS
      sql_text VARCHAR2(100);
    BEGIN
      sql_text := 'create GLOBAL TEMPORARY TABLE tbl_tmp_MSG_COUNT(serv_num varchar2(20)) ON COMMIT PRESERVE ROWS';
      EXECUTE IMMEDIATE sql_text;
    END SP_MSG
      

  2.   


    CREATE OR REPLACE PROCEDURE SP_MSG(oi_return out NUMBER) AS
      sql_text VARCHAR2(100);
    BEGIN
      sql_text := 'create GLOBAL TEMPORARY TABLE tbl_tmp_MSG_COUNT(serv_num varchar2(20)) ON COMMIT PRESERVE ROWS';
      EXECUTE IMMEDIATE sql_text;
    END SP_MSG;
      

  3.   

    少个is
    create or replace procedure SP_MSG(oi_return out number) isbegin 
      create GLOBAL TEMPORARY TABLE tbl_tmp_MSG_COUNT(serv_num 
                                                          varchar2(20)) ON COMMIT PRESERVE ROWS; end SP_MSG;