Как создать триггер в Oracle sql developer?Ошибка получения - PullRequest
0 голосов
/ 10 декабря 2018

Ниже приведен мой код для создания триггера следующим образом.

 CREATE or REPLACE TRIGGER sms_trigger
    AFTER INSERT ON student
    FOR EACH ROW
    ENABLE
    DECLARE lclcmd CHAR(255);
    DECLARE res VARCHAR(255);
     BEGIN

      SET lclcmd = CONCAT("php C:/xampp/htdocs/sample/sms_send.php");
      SET res = sys_exec(lclcmd);

    END;

После выполнения кода выше, появляется ошибка, подобная следующей:

1) Error(1,5): PLS-00103: Encountered the symbol "DECLARE" when expecting 
one 
of the following:     begin function pragma procedure subtype type <an 
identifier>    <a double-quoted delimited-identifier> current cursor delete    
exists prior The symbol "begin" was substituted for "DECLARE" to continue.
2) Error(4,11): PLS-00103: Encountered the symbol "LCLCMD" when expecting 
one of the following:     transaction <a SQL statement> 

1 Ответ

0 голосов
/ 10 декабря 2018

Проверьте ниже, обратите внимание, что функция concat неверна, вы добавили строку ... в concat.

Обратите внимание, что вам не нужно использовать объявление более одного раза, также вам не нужно добавлять SET,и вы должны поставить :=, когда вы хотите присвоить значения.

CREATE or REPLACE TRIGGER sms_trigger
    AFTER INSERT ON student
    FOR EACH ROW
    ENABLE
    DECLARE 
      lclcmd VARCHAR(255);
      res VARCHAR(255);
    BEGIN

       lclcmd := CONCAT('php C:/xampp/htdocs/sample/sms_send.php','something');
      res := sys_exec(lclcmd);

    END;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...