0

同样在“声明@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
4

1 回答 1

0

在每行的 LEAVE_MASTER 上插入后创建或替换触发器 LM_AFTER_INSERT

声明 v_username varchar2(20 字节);

BEGIN SELECT user 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、oralce sql 概念的方式错误。谢谢大家。

于 2015-03-09T04:29:41.277 回答