向 CLOB(50000) 字段插入 40000 个字符时出现 DB2‘以...开头的字符串常量太长’错误

向 CLOB(50000) 字段插入 40000 个字符时出现 DB2‘以...开头的字符串常量太长’错误

我在 DB2 表中创建了一个 CLOB(50000) 字段,并验证它已正确创建

DB2 DESCRIBE TABLE dbname

...然而,即使只尝试在字段中插入 40,000 个字符串,我也收到了以下错误消息:

 [IBM][CLI Driver][DB2/LINUXX8664] SQL0102N  The string constant beginning with
 "'''Testing Long Notes! Testing Long Notes! Testing Long Notes! Testing" is too long.  
 SQLSTATE=54002 SQLCODE=-102

“测试长注释!” 只是我在 HTML 字段中反复重复的字符串,目的是构建 40,000 的字符串长度。然后,PHP 脚本处理已发布的 HTML 表单并尝试执行导致错误的 SQL INSERT。

我在这里遗漏了什么? 是否有其他地方设置了最大字段大小以覆盖 CLOB(50000) 设置? 也许是控制字段大小的配置项?

在客户要求从 MySQL 转换后,我对 DB2 就比较陌生了。

答案1

你需要使用准备好的语句而不是自己将值连接到查询中。 这也适用于 MySQL,这是一种很好的做法 —— 准备好的语句可以保护您免受 SQL 注入的侵害。

DB2 将拒绝处理长度超过 32,000 个字符的原始查询。

相关内容