2013-04-12 24 views
10

Tại sao GETDATE() một định danh hợp lệ cho biết công cụ phát triển Oracle Sql khi tôi gỡ lỗi mã này:Tại sao GETDATE() một định danh hợp lệ

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) Sử dụng 'sysdate' thay vì' getdate() '. 2) Bạn không được phép truy cập vào bảng kích hoạt bên trong được xác định cho bảng này. –

Trả lời

29

Tôi nghĩ rằng bạn muốn SYSDATE, không GETDATE(). Hãy thử:

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

Sử dụng ORACLE tương đương getdate()sysdate. Read about here. Getdate() thuộc về SQL Server, sẽ không hoạt động trên Oracle.

tùy chọn khác là current_date

2

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

+3

Vì vậy; làm thế nào để điều này thêm vào hai câu trả lời đã bao gồm thông tin này? –

1

SYSDATEGETDATE thực hiện hệt.

SYSDATE tương thích với cú pháp Oracle và GETDATE tương thích với cú pháp Microsoft SQL Server.

Các vấn đề liên quan