oracle中的CLOB不允许插入超过4000个字符的数据

时间:2015-05-15 04:50:24

标签: java oracle11g clob

以下是我的表

create table MY_LOG(SQNO NUMBER, CLOB_FLD CLOB);

下面是从java端执行的插入语句

stmt.execute(new StringBuilder(
                "INSERT INTO MY_LOG VALUES ('").append(logMessage.getNo()).append("','").append(logMessage.getStackTrace()).append("')"));
堆栈跟踪太大,即超过4000个字符。所以投掷

SQL Error: ORA-01704: string literal too long
01704. 00000 -  "string literal too long"
*Cause:    The string literal is longer than 4000 characters.
*Action:   Use a string literal of at most 4000 characters.
           Longer values may only be entered using bind variables.

是否有任何内置功能或程序,或者我能做些什么才能使其正常工作?

提前致谢..

1 个答案:

答案 0 :(得分:2)

使用PreparedStatement,使用Connection.createCLob创建一个CLob,使用CLob.setString将文本放入CLob,使用PreparedStatement.setCLob设置PreparedStatement参数