DB2向string(50000)插入40000个字符时,“以…开头的string常量太长”错误

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

DB2 DESCRIBE TABLE dbname 

…但是,即使只尝试向该字段中插入40,000个字符的string,我也收到以下错误消息:

  [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 

“testing长备注” 只是我在HTML字段中反复重复的string,以build立40,000个string长度。 PHP脚本然后处理张贴的HTML表单,并尝试导致错误的SQL INSERT。

我在这里错过了什么? 是否有其他地方的最大字段大小设置覆盖CLOB(50000)设置? 也许一个configuration项来控制字段大小?

在客户端需要从MySQL进行转换之后,我对DB2相对来说比较新。

您需要使用预处理语句,而不是将这些值连接到查询中。 这也适用于MySQL作为一个良好的做法 – 准备好的语句保护您免受SQL注入。

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