如何跳过打印 SQL 脚本但仍然显示 DBMS 值?

How can I skip printing an SQL script but still show the DBMS values?

我正在开发代码,希望在结果中只看到实际值,而不是我执行的脚本。

所以我正在尝试开发一个 "table rows counter" 并且我已经相当成功,但是当我只需要它的结果时,我仍然得到完整执行的脚本。

比方说,我的代码是:

DECLARE
VAR_1 NUMBER := 0;

BEGIN
    SELECT IMITM INTO VAR_1 FROM PRODDTA.F4101 WHERE ROWNUM <= 1;
    DBMS_OUTPUT.PUT_LINE('DUMMY TEST 1' || VAR_1);
    DBMS_OUTPUT.PUT_LINE('DUMMY TEST 2');

END;
/

嗯,按 F5 我会看到:

DUMMY TEST 150041087
DUMMY TEST 2
 PL/SQL procedure successfully completed.

在完整的代码中,它只读了大约 200 行代码,所以...

如何只获取输出行,在这种情况下,删除 "PL/SQL procedure..." 图例?

我试过不成功哟使用 "SET FEED" 和 "SET TERM" 关闭。

根据Oracle documentation

SET FEEDBACK OFF also turns off the statement confirmation messages such as 'Table created' and 'PL/SQL procedure successfully completed' that is displayed after successful SQL or PL/SQL statements.

您需要使用 SET FEEDBACK OFF 如下:

SQL> SET SERVEROUT ON
SQL> SET FEEDBACK OFF
SQL> DECLARE
  2      VAR_1   NUMBER := 0;
  3  BEGIN
  4      SELECT
  5          1
  6      INTO VAR_1
  7      FROM
  8          DUAL
  9      WHERE
 10          ROWNUM <= 1;
 11
 12      DBMS_OUTPUT.PUT_LINE('DUMMY TEST 1' || VAR_1);
 13      DBMS_OUTPUT.PUT_LINE('DUMMY TEST 2');
 14  END;
 15  /
DUMMY TEST 11
DUMMY TEST 2
SQL>
SQL>

干杯!!

我实际上是通过探索 SET 命令设法做到的。

对于SQL脚本"acknolwedgement",我们可以使用以下命令跳过它:

要在实际执行之前禁用 SQL 和变量验证,请使用:

SET VERIFY OFF

要禁用 post 执行注释,正如 Tejash 已经指出的那样,请使用:

SET FEEDBACK OFF

所以我的序言最终是:

SET SERVERTOUTPUT ON;
SET VERIFY OFF;
SET FEEDBACK OFF;

非常感谢您的回答和评论。