Вам не хватает SET SERVEROUTPUT ON
.Эта команда также понятна для SQLDeveloper.
Давайте проведем быстрый тест внутри SQLDeveloper.
CREATE USER "TEST_SCHEMA" IDENTIFIED BY "TEST";
Пользователь "TEST_SCHEMA" создан.
GRANT UNLIMITED TABLESPACE TO "TEST_SCHEMA";
Предоставление выполнено успешно.
CREATE TABLE "TEST_SCHEMA"."NAMES" ("ID" NUMBER, "NAME" VARCHAR2(25), PRIMARY KEY("ID"));
Таблица "TEST_SCHEMA". "Имена" созданы.
CREATE OR REPLACE TRIGGER "TEST_SCHEMA"."NAMES_TRG_1" AFTER
INSERT ON "TEST_SCHEMA"."NAMES"
FOR EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE('New row has been added.');
END;
/
ТриггерNAMES_TRG_1 скомпилировано
SET SERVEROUTPUT ON
Эта команда ничего не печатает в SQL Developer.Не беспокойтесь.
INSERT INTO "TEST_SCHEMA"."NAMES" VALUES (1, 'Mark Smith');
1 строка вставлена.
Добавлена новая строка.
Как видите, вывод был тами он был вставлен после того, как фактическая строка была вставлена в таблицу.Работает нормально.
Чтобы очистить тестовый сценарий, запустите:
DROP USER "TEST_SCHEMA" CASCADE;
![enter image description here](https://i.stack.imgur.com/0CySQ.png)
РЕДАКТИРОВАТЬ 1:
Когда вы работаете с редактором табличных данных, это ведет себя по-другому.Редактор табличных данных имеет свой собственный сеанс Oracle и имеет другой способ получения выходных данных СУБД.
Чтобы открыть окно захвата СУБД, вам нужно нажать на меню "VIEW"
и выбрать опцию "DBMS Output"
.
![DBMS Output option](https://i.stack.imgur.com/ygSrx.png)
Затем нажмите зеленую кнопку «плюс» и установите базу данных, которая будет захвачена.
![DBMS Output window](https://i.stack.imgur.com/IIFaT.png)
Теперь вы можете увидеть вывод.
Остерегайтесь , поскольку выходные данные здесь не "в реальном времени", это окно будет показывать что-то, только когда есть очистка буфера, и очистка буфера не может быть вызвана вручную / напрямую.