以下是我的表
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.
是否有任何内置功能或程序,或者我能做些什么才能使其正常工作?
提前致谢..
答案 0 :(得分:2)
使用PreparedStatement,使用Connection.createCLob创建一个CLob,使用CLob.setString将文本放入CLob,使用PreparedStatement.setCLob设置PreparedStatement参数