ORACLE存储过程两个注意点

1、存储过程执行insert语句时报没有权限,实际登陆用户/存储过程所在用户有该语句的权限。

原因:

Oracle规定,在默认的情况下,调用存储过程用户的角色不起作用,即在执行存储过程时只有Public权限。所以在调用Create table时,会有权限不足的提示。

解决方法:

存储过程名称后面增加AUTHID current_user(以当前用户权限来执行),即可解决这个问题。


2、在linux主机上使用sqlplus执行sql文件里的存储过程,执行后没有结果,问题如下:

没有执行结果信息也没有提示?

原因:

如果是语句的话,;表示结束并且运行
如果是程序块或者pl块,;表示结束不运行,必须/表示运行

解决方法:

存储过程的sql文件最后需要增加“/”。斜杠就是让服务器执行前面所写的sql脚本。如果是普通的select语句,一个分号,就可以执行了。但是如果是存储过程,那么遇到分号,就不能马上执行了。这个时候,就需要通过斜杠(/)来执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值