Oracle 中的 CLOB 不允许插入超过 4000 个字符的数据
CLOB in oracle not allowing to insert data more than 4000 chars
下面是我的table
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.
是否有任何内置的功能或程序,或者我可以做些什么来使它正常工作??
提前致谢..
使用 PreparedStatement,使用 Connection.createCLob 创建 CLob,使用 CLob.setString 将文本放入 CLob,使用 PreparedStatement.setCLob
设置 PreparedStatement 参数
下面是我的table
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.
是否有任何内置的功能或程序,或者我可以做些什么来使它正常工作??
提前致谢..
使用 PreparedStatement,使用 Connection.createCLob 创建 CLob,使用 CLob.setString 将文本放入 CLob,使用 PreparedStatement.setCLob
设置 PreparedStatement 参数