我在通过JDBC将CLOB数据存储到Oracle 9i数据库时遇到问题。我正在使用PreparedStatement并将数据设置为setString(index,value)。该值是一个较大的XML字符串。我使用的驱动程序是ojdbc14.jar。仍然出现一个错误,提示“ java.lang.Exception:此类型的数据大小大于最大大小:4723”。
我的XML不太大,无法容纳在CLOB字段中。仍然出现此错误。请帮忙。
我搜索了很多站点,但没有解决问题,ojdbc14驱动程序不支持setClob()方法。
答案 0 :(得分:0)
对于CLOB(4GB!),XML可能不是太大,但对于使用setString
(4000个字符)来说,XML太大了。教科书解决方案可能是改用setCharacterStream
方法:
PreparedStatement ps = ...;
String xml = "<xml>somve verly long data... </xml>";
ps.setCharacterStream(1, new StringReader(xml), xml.length());