私のテーブルimage
には、image
という2番目の列を持つすべての画像を取得しようとしています。エラーコードinvalid column index
が発生しました。データベースから複数の画像をJavaでファイルに取り出す
package p1;
import java.sql.*;
import java.io.*;
public class test
{
public static void main(String[] args)
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
PreparedStatement ps=con.prepareStatement("select image from imagetable");
ResultSet rs=ps.executeQuery();
int i=0;
while(rs.next())
{
Blob b=rs.getBlob(2);
byte barr[]=b.getBytes(1,(int)b.length());
FileOutputStream fout=new FileOutputStream("d:\\img"+i+".png"); i++;
fout.write(barr);
fout.close();
}//end of while
System.out.println("ok");
con.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
インデックスがBlob b = rs.getBlob(2);でオフになっていると思うのは、各行から単一の値を取得しているからです。 try Blob b = rs.getBlob( "image");代わりに –