Как я могу пропустить печать сценария SQL, но при этом показать значения СУБД? - PullRequest
2 голосов
/ 24 сентября 2019

Я занимаюсь разработкой кода и хотел бы видеть в результатах только фактические значения вместо выполненного мной скрипта.

Поэтому я пытаюсь разработать «счетчик строк таблицы», и яЯ был довольно успешным, но я все еще получаю полностью выполненный скрипт, когда мне нужны только его результаты.

Скажем, мой код:

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 ..."?

Я безуспешно пытался, используя "SET FEED" и "SET TERM" выключить.

Ответы [ 2 ]

3 голосов
/ 24 сентября 2019

Согласно документации Oracle :

SET FEEDBACK OFF также отключает сообщения подтверждения оператора, такие как «Таблица создана» и «Процедура PL / SQL успешно завершена», то естьотображается после успешных операторов SQL или PL / SQL.

Вам необходимо использовать 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>

Cheers !!

0 голосов
/ 27 сентября 2019

Мне действительно удалось это сделать, изучив команды SET.

Для сценария SQL "acknolwedgement" мы можем пропустить его с помощью следующих команд:

Чтобы отключить проверку SQL и переменныхперед фактическим выполнением используйте:

SET VERIFY OFF

Чтобы отключить заметки после выполнения, как уже указывало Tejash, используйте:

SET FEEDBACK OFF

Таким образом, мой пролог в конечном итоге будет:

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

Большое спасибо за ответы и комментарии.

...