2013-04-12 15 views
10

Perché il GETDATE() un identificatore valido dice Oracle SQL Developer strumento quando il debug di questo codice:Perché il GETDATE() un identificatore valido

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) Utilizzare 'sysdate' invece di' getdate() '. 2) Non è consentito accedere alla tabella all'interno del trigger definito per questa tabella. –

risposta

29

Penso che si desidera SYSDATE, non GETDATE(). Provalo:

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

utilizzare Oracle equivalente di getdate() che è sysdate. Read about here. Getdate() appartiene a SQL Server, non funzionerà su Oracle.

Altra opzione è current_date

2

getdate() per MS-SQL, sysdate per server Oracle

+3

Quindi; come si aggiunge alle due risposte che hanno già coperto queste informazioni? –

1

SYSDATE e GETDATE eseguire in modo identico.

SYSDATE è compatibile con la sintassi Oracle e GETDATE è compatibile con la sintassi Microsoft SQL Server.

Problemi correlati