【发布时间】:2014-08-15 01:07:22
【问题描述】:
在 Oracle 中获取更新行标识的最佳方法是什么?我正在尝试编写一个触发器,该触发器能够更新表 Customer 中每个更新行中的时间戳字段。
我的桌子:
CREATE TABLE CUSTOMER
(
ID NUMBER NOT NULL
, LASTNAME NVARCHAR2(20)
, FIRSTNAME NVARCHAR2(20)
, UPDATETS TIMESTAMP(30) NOT NULL
, UPDATEUSER VARCHAR2(30 BYTE) NOT NULL
, CONSTRAINT CUSTOMER_PK PRIMARY KEY
(
ID
)
);
我的触发器:
CREATE OR REPLACE TRIGGER UPDATETS_REG_TRG
AFTER UPDATE ON CUSTOMER
REFERENCING OLD AS oldAlias
FOR EACH ROW
BEGIN
if updating then
update CUSTOMER
set UPDATETS = SYSTIMESTAMP, UPDATEUSER = User where CUSTOMER.ID = oldAlias.ROWID ;
end if;
END;
我收到此错误:Fehler(8,78):
PL/SQL: ORA-00904: "OLDALIAS"."ROWID": invalid identifier
有人可以帮我解决这个问题吗?谢谢:)
【问题讨论】:
标签: database oracle plsql triggers timestamp