2013-10-14 2 views
0

Как я могу связывать EACH строку из одного оператора SELECT sql в другой выходной файл? Например, если у меня естьБаланс вывода результатов на выходе

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

Какие СУБД вы используете? Какие языки программирования у вас есть? – 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++; 
    } 
    ... 
    ... 
} 

Если вам также нужен столбец заголовок, то ResultSetMetaData от resultSet.getMetaData() можно использовать для получения имен столбцов, подготовки заголовка и записи его в каждый файл перед записью строки данных.

+0

Хороший вариант. Попробуй это посмотреть. спасибо за помощь –

+0

Это решает проблему. Большое спасибо. Я пытался оценить ответ как лучший, но не могу получить ссылку. Не могли бы вы дать понять, как это сделать? –

Смежные вопросы