Во время компиляции триггера в Oracle SQL выдает ошибку, поскольку таблица или представление не существует

Также следующая ошибка приближается к "объявлять @empsal" как PLS-00103 :Encountered the symbol "@" when expecting one of the following...

Мои таблицы существуют в базе данных.

Мой триггер:

create or replace
TRIGGER leavemastertrg After INSERT 
ON "xyz"."leave_master"
    declare @empid int;
    declare @empname varchar(100);
    declare @empsal decimal(10,2);
    declare @audit_action varchar(100);

    select @empid=i.LEAVE_ID from inserted i;   
    select @empname=i.LEAVE_NAME from inserted i;   
    select @empsal=i.LEAVE_STATUS from inserted i;  
    set @audit_action='Inserted Record -- After Insert Trigger.';

    insert into manager_master
           (MANAGER_ID,MANAGER_NAME,MANAGER_STATUS,MANAGER_AUDIT_ACTION,MANAGER_AUDIT_TIMESTAMP) 
    values(@empid,@empname,@empsal,@audit_action,getdate());

    PRINT 'AFTER INSERT trigger fired.'
GO

1 ответ

СОЗДАТЬ ИЛИ ЗАМЕНИТЬ TRIGGER LM_AFTER_INSERT ПОСЛЕ ВСТАВКИ НА LEAVE_MASTER ДЛЯ КАЖДОЙ СТРОКИ

ОБЪЯВИТЬ v_username varchar2(20 байт);

НАЧАТЬ ВЫБЕРИТЕ пользователя INTO v_username FROM dual;

INSERT INTO manager_master
( MANAGER_ID,
 MANAGER_NAME,
 MANAGER_STATUS,
 Modified_by)
VALUES
( :new.LEAVE_ID,
  :new.LEAVE_NAME,
  :new.LEAVE_STATUS,
  user);

КОНЕЦ;

Этот пример кода работает нормально в Oracle SQL. Неправильно я применил Mysql, устные концепции sql. Спасибо всем.

Другие вопросы по тегам