aspose file tools*
The moose likes JDBC and the fly likes How to read/write text file to db2 by using java code Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "How to read/write text file to db2 by using java code" Watch "How to read/write text file to db2 by using java code" New topic
Author

How to read/write text file to db2 by using java code

Shan Accent
Greenhorn

Joined: May 08, 2005
Posts: 23
Hai,

Can any one tell me a way to read and write the text file data or big data to db2 database using java code.

Thanks in advance...
V.shan
Shan Accent
Greenhorn

Joined: May 08, 2005
Posts: 23
Hai every,

Please give me some idea, to do it. I created the clob field indb2 database. I don't know how to write / read the clob data.

Thanks,
V.Shan
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 31079
    
163

Shan,
You can read the CLOB as an AsciiStream.


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Shan Accent
Greenhorn

Joined: May 08, 2005
Posts: 23
Hai

I created the table to insert a clob data as follows
db2 => create table ctest(datas clob(65536))
DB20000I The SQL command completed successfully.
db2 => describe table ctest

Column Type Type
name schema name Length Scale Nulls

------------------------------ --------- ------------------ -------- ----- -----
-
DATAS SYSIBM CLOB 65536 0 Yes


1 record(s) selected.

////////////////////////////////////////////

I tried the following java code to insert a clob data.

public static synchronized Connection getConnection() throws Exception {

Connection m_connectionDatabase = null;
try {
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");

// Get the connection to the database.
m_connectionDatabase = DriverManager.getConnection(
"jdbc b2 ps","","");
}catch (Exception e) {
throw new Exception("Failed to connect to the database. ", e);
}

return m_connectionDatabase;
}

public static void main(String a[]) {

File file = new File("d:\\a.txt");
InputStream fis = new FileInputStream(file);
Connection con = getConnection();
PreparedStatement pstmt = con.prepareStatement("insert into ctest values(?)");

//try 1
pstmt.setAsciiStream(1,fis,(int)file.length());

// try 2
pstmt.setCharacterStream(1,fis,(int)(file.length()));

// try 3
pstmt.setBinaryStream(1,fis,(int)(file.length()));

// try 4
byte[] b = new byte[fis.available()];
fis.read(b);
pstmt.setBytes(1, b);

// try 5
byte[] b = new byte[fis.available()];
fis.read(b);
pstmt.setString(1, new String(b));


pstmt.executeUpdate();
pstmt.close();
fis.close();
}

///////////////
Result:
////////////////

If the file size is less than 32kb, it inserted successfully.

but if more than 32kb, it throws follwing exception
COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0352N An unsupported SQLTYPE was encountered in position "1" of the input list (SQLDA). SQLSTATE=56084

at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2PreparedStatement.loadParameters(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2PreparedStatement.execute2(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2PreparedStatement.executeUpdate(Unknown Source)


//////////////////////
Can any body please help out to insert clob value.

Thanks in advance
V.Shan
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to read/write text file to db2 by using java code