如何在dashDB中插入CLOB数据

时间:2017-08-28 05:50:33

标签: db2 clob dashdb

我正在尝试使用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数据类型中插入值的任何帮助将不胜感激。

0 个答案:

没有答案