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
internet detective
Marshal

Joined: May 26, 2003
Posts: 29261
    
140

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
 
Similar Threads
Stored procedure for DB2 running in os390
Writing test case without database operations
To read and save high volume of data.
Loading file data into a DB2 table using java
Using a static method to read data from text file