奇怪,怎么我有权限,但是不能在procedure建表呀

网友投稿 318 2022-08-24

奇怪,怎么我有权限,但是不能在procedure建表呀

create or replace procedure dynamicCreateTable(v number) isbegindbms_output.put_line(v);execute immediate ‘create table test1.pt_’||v||’ (id int)’;end dynamicCreateTable;

执行出现错误SQL> exec dynamicCreateTable(12223);BEGIN dynamicCreateTable(12223); END;*第 1 行出现错误:ORA-01031: 权限不足

ORA-06512: 在 “TEST1.DYNAMICCREATETABLE”, line 4ORA-06512: 在 line 1改成pl/sql 块执行SQL> begin2 execute immediate ‘create table test1.pt_1112 (id int)’;3 end;4 /

PL/SQL 过程已成功完成。很奇怪的现象。接着查看oracle的文档,才发现,是权限的问题test1赋予了两个role权限 connect和resource而在procedure里,是不会识别role权限的这样我赋上create table的权限给test1用户就解决了SQL>grant create table to test1;SQL> exec dynamicCreateTable(1222);PL/SQL 过程已成功完成。这样一些很细节的知识点还是记下来为好。

如果没有那句“三十而立”,三十岁的男人正可以轻轻松松

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一文看懂GUCCI的元宇宙营销!
下一篇:Error Stack
相关文章

 发表评论

暂时没有评论,来抢沙发吧~