Can any one tell me in details how to populate clob column in a table using sql??I tried simple sql statements but found out that simple sql statements won't allow more than 4000 characters but I need to insert more than 4000 characters.I have heard that clob fields can hold 4 gb of data and need pl/sql to avail that feature.Can any one tell me how to create pl/sql blocks and statements.I want to insert value of a textarea into clob column of a table.So please some one tell me what should I do??
No it is not the way I actually want.I need the pl/sql code.Actually I am fetching the data from a form page.I can't use a file to fetch the data.All I need is to get the data from text area and then insert the data into table through pl/sql code.
In MySql database,TINYTEXT, TEXT, MEDIUMTEXT and LONGTEXT can be taken as CLOB type. Here we have used longtext datatype.
1)create a table article in database.
CREATE TABLE `article` (
`ID` int(11) NOT NULL auto_increment,
`Subject` varchar(256) NOT NULL,
`Body` longtext,
PRIMARY KEY (`ID`)
)
2)Here is the java code:
import java.sql.*;
import java.io.*;
import java.net.*;
class InsertClobData
{
public static void main(String[] args){
Connection con = null;
String fileName = "c:/data.dat";
try {
Class.forName("com.mysql.jdbc.Driver");
con =DriverManager.getConnection ("jdbc:mysql://localhost:3306/test", "root", "root");
String clobData = getClobDataAsString(fileName);
PreparedStatement ps = con.prepareStatement("insert into article(subject, body)values (?, ?)");
ps.setString(1, fileName);
ps.setString(2, clobData);
ps.executeUpdate();
System.out.println("Clob data is instered successfully");
}
catch (Exception e) {
e.printStackTrace();
}
}
public static String getClobDataAsString(String filename) throws Exception {
InputStream is = null;
try {
is = new FileInputStream(filename);
int BUFFER_SIZE = 1024;
ByteArrayOutputStream output = new ByteArrayOutputStream();
int length;
byte[] buffer = new byte[BUFFER_SIZE];
while ((length = is.read(buffer)) != -1) {
output.write(buffer, 0, length);
}
return new String(output.toByteArray());
} finally {
is.close();
}
}
}