我正在尝试使用CLOB数据类型将base64编码的字符串(它包含文本加图像 - 图像大小为555 KB,文本数据的大小可以忽略不计)存储到DashDB(DB2)中。但是,虽然我能够创建一个具有CLOB字段的表。
当我尝试将此base64编码的字符串插入此CLOB字段时,我收到错误。我已经研究了使用CLOB与DB2或DashDB在互联网上提供的任何信息(没有太多信息可用),但还没有找到任何解决方案。你能帮忙吗?
以下是我创建表格的方法。
CREATE TABLE "MYDB"."T_RULE_IMPLNOTES_2" (
"IMPL_NOTES_SURR_ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY ( START WITH 100 INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 NO CYCLE CACHE 20),
"UC_RULE_SURR_ID" INTEGER NOT NULL,
"COMPANY_SURR_ID" INTEGER NOT NULL,
"CLIENT_UC_RULE_IMPLNOTES" CLOB(30000000),
"CLIENT_UC_RULE_IMPL_MODIFIED_DATE" DATE,
"CLIENT_UC_RULE_USER_SURR_ID" INTEGER) ORGANIZE BY ROW;
ALTER TABLE "MYDB"."T_RULE_IMPLNOTES_2" ADD CONSTRAINT "PRM_KEY" PRIMARY KEY
("IMPL_NOTES_SURR_ID");
以下是我从代码(Node.js)
将字符串插入表中的方法INSERT INTO "+schema+"T_RULE_IMPLNOTES_1 (IMPL_NOTES_SURR_ID, UC_RULE_SURR_ID, COMPANY_SURR_ID, CLIENT_UC_RULE_IMPLNOTES,CLIENT_UC_RULE_IMPL_MODIFIED_DATE, CLIENT_UC_RULE_USER_SURR_ID) VALUES (NEXT VALUE FOR "+schema+"SURROGATE_KEY_SEQ, p1 , p2 ,'p3','p4', p5)";
我收到此错误 -
SQL0102N The string constant beginning with \"'<p><img rc=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYA
BgAAD/7gAOQ\" is too long. SQLSTATE=54002\n","state":"54002"}
在阅读有关此错误时,我得到了这个:
以string开头的字符串常量的长度大于允许的最大长度。大多数字符串具有以下限制:v对于十六进制常量(X,GX或UX),十六进制数字的数量不得超过32704。
超出限制的字符串只能通过从主机变量赋值来指定。
然而,我只是通过从主变量&#34;的分配来理解它的含义。
有关如何在dashDB中使用CLOB数据类型以及如何在CLOB数据类型中插入值的任何帮助将不胜感激。