2013-02-18 69 views
0

版本:102億什麼是最簡單的方式,以「垃圾」的臨時表到SQL格式

所以可以說我有一個進展中的表狗:

table: dogs 
fields: name, age, breed 

我想加載它們使用標準加載實用程序到Oracle數據庫中。但在Oracle表看起來像這樣

table: dog 
fields: name, age, date_last_updated 

所以,如果我做一個臨時表匹配這一點,是有辦法「傾倒」臨時表到SQL? (所以我可以加載到oracle)

如果不是,那也是一個很好的答案。

感謝您的任何幫助!

編輯: 通過「SQL轉儲」我的意思是:

INSERT INTO dog 
VALUES (Max, 5, Feb 18, 2013) 

有沒有什麼辦法讓其他格式的表格,然後出口的話「INSERT INTO」到我的文件。

回答

1

使用的ODBC支持數據庫管理工具(DBeaver例如),您可以 連接到數據庫的進展和出口表和視圖SQL插入。

+0

是的,我雖然關於這個,但我需要加載到的表是不同的,然後我的進度表。這就是爲什麼我可能會導出一個臨時表。 – Bill 2013-02-19 12:54:59

+0

我認爲應該可以導出不僅表格,還可以查詢結果或視圖。這樣你可以改變表格結構。 – 2013-02-19 16:17:34

1

感謝您的澄清。

從4GL轉儲表(實際表或臨時表)的「自然」方法是使用EXPORT語句創建文本文件。像這樣:

/* export the dog record as-is 
*/ 

output to "dog.d". 
for each dog no-lock: 
    export dog. 
end. 
output close. 

或:

/* export modified dog records 
*/ 

output to "dog.d". 
for each dog no-lock: 
    export dog.name dog.age now. 
end. 
output close. 

Oracle: Import CSV file表明,導入CSV文件導入Oracle是可能使你可以修改上面的代碼,像這樣來創建一個逗號分隔的文件,而不是使用進展默認空格分隔符:

/* export modified dog records to a CSV file 
*/ 

output to "dog.csv". 
for each dog no-lock: 
    export delimiter "," dog.name dog.age now. 
end. 
output close. 
+0

我已更新我的問題 – Bill 2013-02-18 16:01:44

1

根據你的問題,類似這樣的工作。您也可以用實際的表名替換「TT」引用。

OUTPUT TO VALUE("sqldump"). 

FOR EACH tt-dogs: 

    PUT UNFORMATTED 
    "INSERT INTO dog VALUES (" tt-dogs.dog-name tt-dogs.age TODAY ")" SKIP. 

END. 

OUTPUT CLOSE. 
+0

您還需要一個「提交工作」。 – 2013-02-20 01:28:31

相關問題