2013-10-14 51 views
0

如何將單個SELECT sql語句的EACH行結果後臺處理爲不同的輸出文件? 舉例來說,如果我有數據庫結果輸出假脫機

SELECT * FROM myTable WHERE columnId < 45;

while (rs.next()) { 
    result of row1 goes to row1.txt; 
    result of row2 goes to row2.txt; 
    result of row3 goes to row3.txt; 
    result of row4 goes to row4.txt; 
} 
+0

你正在使用哪些DBMS?你有什麼編程語言可用? – gvee

+0

正在使用oracle數據庫,並且正在使用Java編程 –

回答

0

我會做這種方式(不生產質量的代碼,但一個基本的想法):

private String spoolRow(ResultSet currentRow) 
{ 
    // Append each attribute to a StringBuilder in a nicely formatted way 
    // and return. 
} 

private void myMethod(....) 
{ 
    ... 
    ... 
    FileOutputStream fos; 
    String fileName; 
    int counter = 1; 
    while (rs.next()) { 
     fileName = "row" + counter + ".txt"; 
     fos = new FileOutputStream(fileName); 
     fos.write(spoolRow(rs)); 
     fos.close(); 
     counter++; 
    } 
    ... 
    ... 
} 

如果您還需要在列頭,然後ResultSetMetaDataresultSet.getMetaData()可用於獲取列名稱,準備標題並寫入數據行之前寫入每個文件。

+0

不錯的選擇。將試試看看。非常感謝您的幫助 –

+0

解決了這個問題。非常感謝。 我一直在試圖評價最好的答案,但無法獲得鏈接。你能提供關於如何做到這一點的線索嗎? –