【发布时间】:2018-12-03 17:21:10
【问题描述】:
我正在尝试在 oracle 的过程中创建一个表。但我不断得到 ORA-01031: 权限不足。我想也许我的用户需要特权才能这样做?
这是程序代码:
CREATE OR REPLACE PROCEDURE AjouterCol(TAB VARCHAR2, NOM VARCHAR2) IS
REQ VARCHAR2(200);
RES VARCHAR2(200);
RES1 VARCHAR2(200);
NAME VARCHAR2(200);
BEGIN
NAME:=TAB || '_' || NOM;
RES:='CREATE TABLE '||NAME||' AS SELECT * FROM '|| TAB || ' WHERE Col9 = ''PARIS'' AND SOUNDEX(Col9) = SOUNDEX(''PARIS'')' ;
EXECUTE IMMEDIATE RES;
RES1:='ALTER TABLE '|| NAME ||' ADD MAGASIN VARCHAR2(5)';
EXECUTE IMMEDIATE RES1;
REQ:='UPDATE '|| NAME ||' SET MAGASIN = '''|| NOM ||''' WHERE MAGASIN IS NULL' ;
EXECUTE IMMEDIATE REQ;
END;
/
有什么帮助吗?谢谢。
【问题讨论】:
-
嗯,你是数据库管理员吗?如果是这样,以具有必要权限的用户身份运行它?如果没有,请向 DBA 询问具有必要权限的用户?你已经有了答案;您需要具有必要权限的用户。那你的问题到底是什么?
-
我的问题是:用户需要哪些必要的权限(如果存在)才能执行创建表的过程。以前,我无法从我的用户创建视图,因此我以系统身份登录并使用以下命令将其授予我的用户:GRANT CREATE VIEW TO MyUser;在这种情况下有类似的事情吗?
-
GRANT CREATE,ALTER,UPDATE ON TABLE/VIEW TO USER权限不足的唯一解决方案 -
@HimanshuAhuja 哦不,我只是在问为什么我的程序一直返回错误并想知道赠款是否可以解决我的问题
标签: sql oracle procedure privileges