Sql 关于存储过程中的立即执行

Sql 关于存储过程中的立即执行,sql,oracle,stored-procedures,plsql,Sql,Oracle,Stored Procedures,Plsql,我从存储过程中得到以下语句。它没有给予足够的特权。 但如果我单独从sql提示符运行create语句,它将创建表 execute immediate 'create table TEST_ABC( NO_AC NUMBER(8) , ILL_PER VARCHAR2(15) , INIT_C DATE )'; 要通过存储过程中的

我从存储过程中得到以下语句。它没有给予足够的特权。 但如果我单独从sql提示符运行create语句,它将创建表

    execute immediate 'create table TEST_ABC(
                    NO_AC NUMBER(8) 
                    , ILL_PER VARCHAR2(15)
                    , INIT_C DATE
                    )';

要通过存储过程中的execute immediate创建表,需要做什么。不确定它在sql命令提示符下的工作方式过程不会继承通过角色授予的权限。更多信息。请检查一下你是否是这样的


解决此问题的一种方法是直接向拥有该过程的帐户授予“创建表”权限。

该过程是由同一用户创建的吗?如果它是由其他人创建的,并且您只有EXECUTE权限,那么错误是正确的(假设create过程没有
AUTHID CURRENT USER
子句)


你能创建其他表格吗?如果可以,那么就有一些问题。我们需要更多的细节来分析。

您是否使用同一用户执行存储过程?