아래는 간단하게 처리하는 경우
stmt.setString(position, xml);
or
Clob형을 사용하여 처리하는 경우
try {
java.sql.Clob clob =
oracle.sql.CLOB.createTemporary(
connection, false, oracle.sql.CLOB.DURATION_SESSION);
clob.setString(1, xml);
stmt.setClob(position, clob);
stmt.execute();
}
finally {
clob.free();
}
import oracle.jdbc.OraclePreparedStatement;
void insert(int id, String xml){
try {
String sql = "INSERT INTO table1(ID,XML) VALUES ("
+ id
+ "', ? )";
PreparedStatement ps = conn.prepareStatement(sql);
((OraclePreparedStatement) ps).setStringForClob(1, xml);
ps.execute();
result = true;
} catch (Exception e) {
e.printStackTrace();
}
}
위와 같은 방법도 존재한다. 일반적인 String으로 처리하였을 경우 3000byte이상 채 넣을 수 없다. Clob 데이터는 2GB까지 저장이 가능한데, String으로 처리할 경우 Clob 데이터형을 사용을 제대로 못한다.
위 내용은 Stackoverflow의 내용을 참조했다.
stackoverflow