SQL* PLUS Trigger не скомпилирован, но ошибок не обнаружено - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь создать последовательность и триггер, используя sqlplus, и все написано в терминах bash сценария. Мой код выглядит следующим образом

su -p oracle -c "$ORACLE_HOME/bin/sqlplus -l mydb/mypass@localhost:1521/xe << !
    create sequence SEQ_NAME start with 1000 maxvalue 9999;

    create or replace trigger TRG_NAME
    before insert on TABLE_NAME
    for each row
    begin
        select SEQ_NAME.nextval into :new.MY_ID from dual;
    end;
!
"

После выполнения вышеупомянутой команды я ожидал получить некоторые журналы, похожие на

Sequence created

Trigger compiled

Но появляется только журнал Sequence created. В результате создается только последовательность, а триггер не создается. Я знаю, что при проверке SQL Developer tool

Дело в том, что я использую SQL Developer tool и выполняю скрипт

create sequence SEQ_NAME start with 1000 maxvalue 9999;

create or replace trigger TRG_NAME
before insert on TABLE_NAME
for each row
begin
select SEQ_NAME.nextval into :new.MY_ID from dual;
end;

Тогда все работает отлично! Последовательность и триггер созданы!

Есть идеи для этой проблемы?

1 Ответ

2 голосов
/ 07 января 2020

Попробуйте и дайте нам знать, пожалуйста.

su -p oracle -c "$ORACLE_HOME/bin/sqlplus -l mydb/mypass@localhost:1521/xe << !
    create sequence SEQ_NAME start with 1000 maxvalue 9999
    /
    create or replace trigger TRG_NAME
    before insert on TABLE_NAME
    for each row
    begin
        select SEQ_NAME.nextval into :new.MY_ID from dual;
    end;
    /
!
"
...