需求及现象:
需要在存储过程中拼接SQL执行向其他用户的表中插入数据,生成的SQL单独运行没问题,但是EXECUTE IMMEDIATE的时候提示ORA-01031: 权限不足。
解决办法:
CREATE OR REPLACE PROCEDURE XXXXXXXXXXXXX
AUTHID CURRENT_USER
IS
在过程声明部分加入 AUTHID CURRENT_USER 就可以使用当前用户的role权限了。
我这个是单独的过程,如果是PACKAGE就加在包头声明部分就可以了,包体不用。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28502651/viewspace-1124249/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28502651/viewspace-1124249/