Ets*_*liv 1 oracle ksh sqlplus
我正在尝试使用 sqlplus 运行脚本。我的脚本是一个简单的删除语句。我通过将以下内容放入我的 ksh 终端来执行它:
sqlplus username/'password' @../sql/delete_societes.sql
Run Code Online (Sandbox Code Playgroud)
../sql/delete_societes.sql 是
DELETE FROM f2020.SOCIETES;
/
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它运行了两次,导致输出“0 行被删除”被打印两次并在我尝试执行插入而不是删除时导致错误。
使您的脚本执行任一操作;
DELETE FROM f2020.SOCIETES
/
Run Code Online (Sandbox Code Playgroud)
或者
DELETE FROM f2020.SOCIETES;
Run Code Online (Sandbox Code Playgroud)
没有斜线。
从文档:
/(削减)
执行存储在 SQL 缓冲区中的最近执行的 SQL 命令或 PL/SQL 块。
在下面的例子中:
输入斜线(/)重新执行缓冲区中的命令
......这正是你所看到的。
分号 (;) 表示这是命令的结尾。按回车键或单击执行。SQL*Plus 处理命令并显示结果
像许多客户端一样,SQL*Plus 将 SQL 语句末尾的分号视为语句分隔符 - 它不是语句本身的一部分(这会导致一些混淆,例如动态 SQL 和 JDBC 调用) - 当它看到它时它会执行命令。执行的语句留在命令缓冲区中;如果你list看到当前的命令缓冲区,它不会显示那个分号。当您发出斜杠时,它会再次执行缓冲区。
PL/SQL 的情况略有不同;PL/SQL 块必须以分号结束,分号是块的一部分,并出现在缓冲区中。您必须使用斜杠来执行 PL/SQL 块。
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |