このコードをデバッグするときに、GETDATE()が無効な識別子であるとOracle Sql Developerツールが表示されるのはなぜですか。
CREATE OR REPLACE TRIGGER SPName
AFTER UPDATE
ON TableName
FOR EACH ROW
BEGIN
UPDATE TableName SET LastModifiedDate = GETDATE() WHERE TableName.DET_ID = :new.DET_ID;
END;
GETDATE()
ではなく、SYSDATE
が必要だと思います。それを試してみてください:
UPDATE TableName SET LastModifiedDate = (SELECT SYSDATE FROM DUAL);
sysdate
であるgetdate()
と同等のOracleを使用します。 こちらについてお読みください Getdate()はSQL Serverに属し、Oracleでは機能しません。
その他のオプションはcurrent_date
getdate()
MS-SQLの場合、sysdate
Oracleサーバーの場合
SYSDATE
とGETDATE
は同じように機能します。
SYSDATE
はOracle構文と互換性があり、GETDATE
はMicrosoft SQL Server構文と互換性があります。