2016-01-19 167 views
1

創建oracle查詢需要一點幫助。如何從一個表格插入多個值到另一個表格?

我有一張表,我想從另一張表中插入數據。

我通過查詢得到這個表中的賬戶號碼:

select AccountNumbers from Company; 

它返回我,

1234 
2345 
3456 
4567 
5678 

現在我想在另一個表中插入該數據。

Insert into tempTable (id, group, accountNumber) values (seq_mytemp_sequence, 'A', (select AccountNumbers from Company)); 

我已經創建了工作正常的序列。但它失敗說,子查詢返回多個顯而易見的行。

我想要被插入在臨時表中的數據以這樣的方式,這將是這個樣子,

1 A 1234 
2 A 2345 
3 A 3456 
4 A 4567 
5 A 5678 

我嘗試使用循環,但它很難獲取個人賬戶作爲ROWNUM不工作除1以外的任何東西。

有人可以指導我如何做到這一點?你的幫助表示讚賞

回答

2

它不應該是這樣:

Insert into tempTable (id, group, accountNumber) 
select seq_mytemp_sequence, 'A', AccountNumbers from Company ; 

,而不是像:

Insert into tempTable (id, group, accountNumber) 
values (seq_mytemp_sequence, 'A', (select AccountNumbers from Company)); 
1

您需要使用INSERT INTO ... SELECT,當你想從時序的編號,你需要.NEXTVAL

INSERT INTO tempTable (id, "group", accountNumber) 
SELECT SEQ_MYTEMP_SEQUENCE.NEXTVAL, 
     'A', 
     AccountNumbers 
FROM Company 

(另外,請不要給列名whi ch是關鍵詞,如GROUP,因爲您必須用雙引號將它們包裝起來,然後Oracle會在列名上強制區分大小寫)

相關問題