Oracle データベースに接続し、複数のテーブルにクエリを実行しています。私の現在のコードは、接続を作成し、クエリを含む PL/SQL 関数を呼び出します。結果セットを取得したら、それを Vector に追加します (各クエリの結果のレコード数がわからないため)。
私の問題は、ベクターから区切られたファイルを書き込む方法がわからないことです。結果セットを追加すると、それは単なる 1 つの巨大な文字列になると思います。クエリから各フィールドを受け取り、それらの間を区切り、行を分離できるようにする必要があります。
これが私のコードです:
public static void main(String[] args) throws SQLException {
// instantiate db connection
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch (Exception e) {
throw new SQLException("Oracle JDBC is not available", e);
}
// define connection string and parameters
String url = "jdbc:oracle:thin:@//host:port/sid";
Connection conn = DriverManager.getConnection(url, "USERNAME","PASSWORD");
CallableStatement stmt = conn.prepareCall("{? = CALL <functionname>(?)}");
// get result set and add to a Vector
ResultSet rs = stmt.executeQuery();
Vector<String> results = new Vector();
while ( rs.next() ){
results.add(rs.getString(1));
}
// close result set, sql statement, and connection
rs.close();
stmt.close();
conn.close();
// write Vector to output file,
// where the file name format is MMddyyyy.txt
try {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("MMddyyyy");
String dateStr = sdf.format(cal.getTime());
FileWriter fwrite = new FileWriter(dateStr + ".txt");
BufferedWriter out = new BufferedWriter(fwrite);
for(int i = 0; i < results.size(); i++)
{
String temp = results.elementAt(i);
out.write(temp);
}
out.close();
}catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
データベースから情報を取得して区切りファイルに書き込む方法がわかりません。前もって感謝します!