2016-03-03 58 views
0

我試圖實現插入全部查詢時。我不斷收到無效的標識符錯誤,我不確定它的表格結構是否導致錯誤,或者我的查詢中是否包含其他內容。無效標識符時插入全部

Customer表

Name  Type   
C_ID NUMBER  
C_FN VARCHAR2(10) 
C_LN VARCHAR2(10) 
C_PH VARCHAR2(12)  
C_BD DATE 

折扣表

Name Type   
C_ID NUMBER  
C_LN VARCHAR2(10) 
C_FN VARCHAR2(10) 

我的查詢:

INSERT ALL 
    WHEN C_BD <= TO_DATE('01-JAN-1950','DD-MON-YYYY') THEN 
    INTO DISCOUNT(C_ID,C_LN,C_FN) 
    VALUES(C_ID,C_LN,C_FN) 
SELECT C_ID,C_LN,FROM CUSTOMER; 

C_BD被作爲一個 '無效的標識符'

我想拋出的錯誤給你nderstand是什麼原因造成這個問題

+1

缺少列名嗎? 'SELECT C_ID,C_LN,FROM CUSTOMER' – artm

+0

既然你只引用一個表,可能'插入折扣選擇c_id,c_ln,c_fn from customer'會更好。無論哪種方式,你的問題是你的'select'語句。 – sgeddes

回答

1

您需要選擇在SELECTC_BD

INSERT ALL 
    WHEN C_BD <= TO_DATE('01-JAN-1950', 'DD-MON-YYYY') THEN 
     INTO DISCOUNT(C_ID,C_LN,C_FN) 
     VALUES (C_ID, C_LN, C_FN) 
    SELECT C_ID, C_LN, C_FN, C_BD 
    FROM CUSTOMER; 
+0

那麼C_BD應該是我的折扣表結構的一部分嗎? – lnjblue

+0

@Injblue。 。 。它不需要。重要的一點是,它是從'CUSTOMER'中選擇的,所以它對'WHEN'是可見的。 –