无法从 cmd PL/SQL 中的简单查询中获得正确的结果

Posted

技术标签:

【中文标题】无法从 cmd PL/SQL 中的简单查询中获得正确的结果【英文标题】:Unable to get correct result from simple query in cmd PL/SQL 【发布时间】:2021-09-29 22:43:52 【问题描述】:

我试图打印“Hello World”,但我继续返回数字 7。此外,返回 7 后,如果不重新启动 cmd 窗口,我将无法运行另一个文件。如果我按回车键,数字会增加 1。请解释为什么会发生这种情况以及可能的纠正方法。

【问题讨论】:

【参考方案1】:

/ 放在文件末尾的新行上以终止 PL/SQL 匿名块。

SET SERVEROUTPUT ON;

DECLARE
  name VARCHAR2(20);
BEGIN
  name := 'Hello World';
  DBMS_OUTPUT.PUT_LINE(name);
END;
/

SQL/Plus 已读取您的文件,但未找到 PL/SQL 块的语句终止符,因此它继续要求更多输入以完成语句。它期望在新行上有一个 / 字符(语句的第 7 行,第一行是 DECLARE,因为 SET 命令是不同的语句),当您按下回车键时,它会移动到行语句的第 8 行并且仍然期待终止符,因此要求更多输入(并在第 9、10 和 11 行重复)。

您可以按/ 然后输入 SQL/Plus 但最好修复文件以使其包含完整的语句。

【讨论】:

非常感谢您的精彩解释!

以上是关于无法从 cmd PL/SQL 中的简单查询中获得正确的结果的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 PL/SQL 在 CMD 中打印结果

如何从 PL/SQL 导出半百万条记录

从 PL/SQL 函数访问查询的 from 子句中的表名

从 PL/SQL 中的查询加硬编码变量返回用户定义的表

如何从 PL/SQL 调用 .exe?

PL/SQL无法查询过滤中文字段解决方案