2016-08-24 101 views
3

我正在使用ORACLE 10g作爲數據庫。ORACLE INSERT QUERY中的SELECT QUERY

考慮兩個表:
1)ABC與柱A作爲主鍵和其餘的可以用柱保持空值
2.)XYZW¯¯作爲主鍵,其餘的可以保持空值

另外對等體的數據類型是相同
實施例:A = W,B = X,C = Y,d = Z
平等意味着數據類型是相同

以下查詢運行完全正常

INSERT INTO ABC(A ,B,C,D) 
VALUES ('klm' , (SELECT X FROM XYX WHERE W ='SOME_VALUE') , 'Dsl' , 'rwz') 

但是,下面的查詢不起作用..如果有人能幫助我嗎?

INSERT INTO ABC(A,B,C,D) 
VALUES ((SELECT W, X , Y , Z FROM XYX WHERE W ='SOME_VALUE')) 

注意:W的值不在表ABC中。沒有約束違規

Error report: SQL Error: ORA-00947: not enough values 00947. 00000 - "not enough values"

請解釋??

插入到ABC(A,B,C,d)VALUES( '123',(SELECT X,Y,從XYZ -Z其中W = 'same_value')),我需要解決這一通用的東西

回答

6

刪除values構造函數,並在Insert之後直接使用Select查詢。

嘗試這種方式

INSERT INTO ABC(A,B,C,D) 
SELECT W, X , Y , Z FROM XYX WHERE W ='SOME_VALUE' 

更新

只是硬編碼在Select列表中的值(123)

INSERT INTO ABC(A,B,C,D) 
SELECT 123, X , Y , Z FROM XYX WHERE W ='SOME_VALUE' 
+0

嘿,感謝您的快速響應每一次我不t按照相同的方式, 插入到ABC(A,B,C,D)VALUES('123',(從XYZ選擇X,其中W ='same_value')) 我需要一個通用的解決方案 –

+0

@AshwinSharma - 檢查更新 –

+0

感謝它的工作..! :) –