在SQLPlus中执行脚本时我遇到了一个问题:
script.sql包含以下行
@some_pkg.pks
@some_pkg.pkb
drop package some_pkg;
/
Run Code Online (Sandbox Code Playgroud)
打电话后
> sqlplus用户/密码@dbname @ script.sql
控制台中包含以下消息:
Package created.
Package body created.
Package dropped.
drop package some_pkg;
*
ERROR at line 1:
ORA-04043: object SOME_PKG does not exist
Run Code Online (Sandbox Code Playgroud)
请解释一下这里发生了什么.看起来包被丢弃了两次.有可能避免错误吗?
SQLplus命令执行的规则基本上是:
DECLARE或BEGIN收集所有文本而不执行分号/),请执行收集的文本.那么在你的情况下会发生的事情是,分号和斜杠都执行DROP语句.
要修复它,请删除斜杠.
如果你有一个PL/SQL块,你只需要斜杠,它总是带有一个END语句.使用分号代替其他所有内容.
注意:上述规则已经简化.它在实践中更复杂.
| 归档时间: |
|
| 查看次数: |
1451 次 |
| 最近记录: |