Inserting BLOBS to Oracle using Java
Hi. I am very familiar with Oracle but very new to Java. I need some guidance as to where I should begin with the following requirement:
I need to insert logs residing on an NT file system (generated by the application server) into BLOB columns in an Oracle database using Java (I think i/o is what I will need, but I am unsure). The logs are constantly being generated, so I need a program that will also frequently update the table in the DB accordingly. Does anyone have any suggestions or sample code that might help me achieve this as quickly as possible? Any suggestions are appreciated. Thanks in advance.
[633 byte] By [
Charissa] at [2007-9-26 1:43:20]

Hi Cherissa
Following code might help you to store the files in BLOB column in Oracle database
test is a table in which TEST is BLOB column
String url = "jdbc:oracle:thin:@.....";
String user = "user name";
String password = "password";
Connection conn = null;
PreparedStatement aQuery = null;
ResultSet rs = null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url,user,password);
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
stmt.execute("insert into test values (EMPTY_BLOB())");
rs = stmt.executeQuery("select TEST from test");
rs.next();
BLOB blob =((OracleResultSet)rs).getBLOB(1);
File f = new File(filename);
FileInputStream io = new FileInputStream(f);
OutputStream os = blob.getBinaryOutputStream();
int size = io.available();
byte[] buffer = new byte[1024];
int length=0;
while((length=io.read(buffer)) != -1)
os.write(buffer,0,length);
io.close();
os.close();
stmt.execute("commit");
}
catch()
{}
For frequent update in dabase,write thread & from that thread call the above program.
From
Sachin