首页 > 解决方案 > 无法从 cmd PL/SQL 中的简单查询中获得正确的结果

问题描述

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

在此处输入图像描述

标签: oracleplsqlsqlplus

解决方案


在文件末尾添加一个/新行以终止 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 中输入,但最好修复文件以使其包含完整的语句。


推荐阅读