oracle 测试存储过程 是哪个权限
发布网友
发布时间:2022-04-26 09:00
我来回答
共4个回答
热心网友
时间:2022-04-10 14:19
Oracle规定,在默认的情况下,在调用存储过程用户的角色不起作用,即在执行存储过程时只有Public权限。所以在调用Create table时,会有权限不足的提示。
只需要使用IR Procere就能很快解决问题啦,把代码修改为如下:
CREATE OR REPLACE PROCEDURE TestProc AUTHID current_user
IS
flag number;
BEGIN
select count(*) into flag from all_tables where table_name='TEMP3';
if (flag=0) then
execute immediate 'create global temporary table TEMP3 on commit preserve rows as select * from BUSI_ECONTRACT';
else
execute immediate 'insert into TEMP3 select * from BUSI_ECONTRACT';
end if;
END ;
执行存储过程,顺利通过。
热心网友
时间:2022-04-10 15:37
你看看USER下面有没有别的系统权限,特别是alter any procere。
如果USER只有CONNECT和RESOURCE角色,即使给它EXECUTE,它也不能编译。会报错,ORA-01031没有足够权限。
热心网友
时间:2022-04-10 17:11
grant debug connect session to user1
热心网友
时间:2022-04-10 19:03
随便哪个用户都可以