2
Я изучаю триггеры от [http://www.tutorialspoint.com/plsql/plsql_triggers.htm][1] с sqldeveloper и я подключил базу данных Oracle 11g. Я создал таблицу клиентов успешно. Но когда я попытался создать триггер:ошибка компиляции триггера в sqldeveloper с oracle11g
CREATE OR REPLACE TRIGGER display_salary_changes
BEFORE DELETE OR INSERT OR UPDATE ON customers
FOR EACH ROW
WHEN (NEW.ID > 0)
DECLARE
sal_diff number;
BEGIN
sal_diff := :NEW.salary - :OLD.salary;
dbms_output.put_line('Old salary: ' || :OLD.salary);
dbms_output.put_line('New salary: ' || :NEW.salary);
dbms_output.put_line('Salary difference: ' || sal_diff);
END;
я получаю эти ошибки:
Error starting at line : 1 in command -
CREATE OR REPLACE TRIGGER display_salary_changes
BEFORE DELETE OR INSERT OR UPDATE ON customers
FOR EACH ROW
WHEN (NEW.ID > 0)
DECLARE
sal_diff number
Error report -
SQL Command: trıgger DISPLAY_SALARY_CHANGES
Failed: Warning: yürütme uyarı ile tamamlandı
Error starting at line : 7 in command -
BEGIN
sal_diff := :NEW.salary - :OLD.salary;
dbms_output.put_line('Old salary: ' || :OLD.salary);
dbms_output.put_line('New salary: ' || :NEW.salary);
dbms_output.put_line('Salary difference: ' || sal_diff);
END;
Error report -
ORA-06550: line 2, column 5:
PLS-00201: identifier 'SAL_DIFF' must be declared
ORA-06550: line 2, column 5:
PL/SQL: Statement ignored
ORA-06550: line 3, column 60:
PLS-00487: Invalid reference to variable 'SQLDEVBIND1Z_2'
ORA-06550: line 3, column 5:
PL/SQL: Statement ignored
ORA-06550: line 4, column 60:
PLS-00487: Invalid reference to variable 'SQLDEVBIND1Z_1'
ORA-06550: line 4, column 5:
PL/SQL: Statement ignored
ORA-06550: line 5, column 51:
PLS-00201: identifier 'SAL_DIFF' must be declared
ORA-06550: line 5, column 5:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Что не так с этим создать блок запуска?
Ваш стек ошибок не кажется, джайв с кодом вы публикуемую. Есть ли что-нибудь еще в вашем окне разработчика SQL, кроме инструкции 'CREATE TRIGGER'? –
тот же триггер, который работает в моем компьютере с Oracle Database 11g версии 11.2.0.4.0 – TechnoCrat
Когда я создаю триггер как новый триггер вроде этого: http://imgur.com/axdMCmC, он скомпилирован автоматически без каких-либо ошибок. Но когда я создаю триггер в файле .sql, я получаю ошибки, когда мне надоело запускать блок следующим образом: http://imgur.com/ubwTCig. Я не мог понять. Спасибо за помощь. – user3246402