如何跳过打印 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" 关闭。
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;
非常感谢您的回答和评论。
我正在开发代码,希望在结果中只看到实际值,而不是我执行的脚本。
所以我正在尝试开发一个 "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" 关闭。
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;
非常感谢您的回答和评论。