2013-04-12 13 views
10

Dlaczego GETDATE() nieprawidłowy identyfikator mówi narzędzia Oracle SQL Developer kiedy debugowania tego kodu:Dlaczego GETDATE() nieprawidłowy identyfikator

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; 
+0

1) Użyj 'sysdate' zamiast' getdate() '. 2) Nie masz dostępu do tabeli wewnątrz wyzwalacza zdefiniowanego dla tej tabeli. –

Odpowiedz

29

myślę chcesz SYSDATE nie GETDATE(). Spróbuj go:

UPDATE TableName SET LastModifiedDate = (SELECT SYSDATE FROM DUAL); 
7

użycie ORACLE odpowiednik getdate() która sysdate. Read about here. Getdate() należy do SQL Server, nie działa na Oracle.

Inną opcją jest current_date

2

getdate() dla MS-SQL, sysdate dla serwera Oracle

+3

Tak; jak to wpływa na dwie odpowiedzi, które już obejmowały te informacje? –

1

SYSDATE i GETDATE wykonać identycznie.

SYSDATE jest kompatybilny ze składnią Oracle, a GETDATE jest zgodny ze składnią Microsoft SQL Server.

Powiązane problemy