如何在PL/SQL包中创建临时表?

问题描述 投票:0回答:1

我创建了一个包,我想在这个包体的存储过程中创建一个临时表。但我不能这样做,因为给出了一条错误消息,指出权限不足。我可以创建表,但在存储过程中,我不能这样做。请任何人都可以帮我在存储过程中创建临时表吗?

create or replace PACKAGE BODY PKG_MY_TESTING AS

PROCEDURE PRC_MY_TESTING_DATA(DATE DATE, ID NUMBER)
IS

EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE all_muster_ids                                                         
    ON COMMIT DELETE ROWS AS                                                                                  
   SELECT *
      FROM MY_TABLE';                                                                                              
COMMIT;                                                                                         
EXCEPTION                                                                                        
WHEN OTHERS THEN                                                                                                      
ROLLBACK;                                                                                   

END PRC_MY_TESTING_DATA;                                                                                  
END PKG_MY_TESTING; 
oracle stored-procedures plsql
1个回答
0
投票

创建或替换 PACKAGE BODY PKG_MY_TESTING AS

程序 PRC_MY_TESTING_DATA(日期日期,ID 号) 是

立即执行'创建全局临时表all_muster_ids
提交时删除行为
选择 * 来自我的表';
提交;
例外
当其他人的时候
回滚;

END PRC_MY_TESTING_DATA;
结束 PKG_MY_TESTING;

© www.soinside.com 2019 - 2024. All rights reserved.