我想根据用户A在包中的过程中创建一个临时表。
我写这个:
EXECUTE IMMEDIATE '
CREATE GLOBAL TEMPORARY TABLE T (....)';
我有一个错误说:
ORA-01031 : Insufficient privilege
选择user_role_privs我可以看到用户A具有以下角色:
CONNECT
DBA
RESOURCE
我应该添加什么角色来解决我的问题?
由于
答案 0 :(得分:1)
角色在definer-rights PL / SQL中没有用。您需要直接授予create table
权限。
或者,在invoker-rights包/过程中执行此操作。但是,调用者权利最适合于通用实用程序'键入代码而不是业务数据操作。
为什么需要在程序中创建表?你不能只包括你在构建中需要的所有表吗?