2016-11-21 51 views
2

例如如何在oracle中爲GLOBAL TEMPORARY TABLE創建SEQUENCE?

CREATE GLOBAL TEMPORARY TABLE GGT_temp_reversal 
(      
    sessionid VARCHAR (50) NULL,      
    syspk     NUMERIC (23) 
) 
ON COMMIT DELETE ROWS ; 

CREATE SEQUENCE GGT_temp_reversal_seq; 

CREATE OR REPLACE TRIGGER GGT_temp_reversal_bir 
BEFORE INSERT ON GGT_temp_reversal 
FOR EACH ROW 
WHEN (new.id IS NULL) 
BEGIN 
    :new.id := GGT_temp_reversal_seq.NEXTVAL; 
END; 

獲得錯誤 「%S:無效識別符」

+2

沒有列'ID'表中的'GGT_temp_reversal' –

+0

請如果您對此表示滿意,請將回答設置爲已接受。 –

回答

4

你是一個ID列創建觸發

:new.id:= GGT_temp_reversal_seq.NEXTVAL;

但是你還沒有宣佈它在CREATE TABLE

CREATE GLOBAL TEMPORARY TABLE GGT_TEMP_REVERSAL (
    SESSIONID VARCHAR(50) NULL, 
    SYSPK  NUMERIC(23) 
) 

添加ID列,會被罰款