【问题标题】:Informix 7.3 isql insert statement - text/blob/clob field insert errorInformix 7.3 isql 插入语句 - 文本/blob/clob 字段插入错误
【发布时间】:2010-11-07 15:27:44
【问题描述】:

有办法解决这个问题吗??

我正在尝试将一些数据插入到结构如下的表中:

Column name          Type                                    Nulls

crs_no               char(12)                                no
cat                  char(4)                                 no
pr_cat               char(1)                                 yes
pr_sch               char(1)                                 yes
abstr                text                                    yes

最后一个字段的类型为“文本”,但尝试插入此表时,出现此错误:

insert into crsabstr_rec values ("COMS110","UG09","Y","Y","CHEESE");

  617: A blob data type must be supplied within this context.
Error in line 1
Near character position 66

所以这个字段显然是某种 blob,但不会插入(或更新)。通常,这些记录被插入到 GUI 表单中,然后 C 代码处理插入。

【问题讨论】:

    标签: sql insert blob informix isql


    【解决方案1】:

    在 Informix Dynamic Server (IDS) 中没有 blob(BYTE 或 TEXT)文字 - 在 IDS 9.00 和更高版本中也没有 CLOB 或 BLOB 类型。这对我来说是一个持续的挫败感;多年来我一直在系统中提出功能请求,但它从未在内部达到痛苦阈值,这意味着它已得到修复——其他事情得到了更高的优先级。

    尽管如此,它一直在咬人。

    在 IDS 7.3 中(您的目标应该是升级 - 它在十年左右后于 2009 年 9 月停止服务),您几乎无法使用 C 将数据获取到数据库的 TEXT 字段中。您必须使用批准的 C 类型 'loc_t' 来存储有关 BYTE 或 TEXT 数据的信息,并将其传递给服务器。

    如果您需要 ESQL/C 中的示例,请查看 International Informix User Group 网站,尤其是 Software Repository。除此之外,您还可以找到源代码形式的原始 SQLCMD 程序(Microsoft 的同名程序是 Johnny-Come-Lately)。它还包括一组我称之为“小插曲”的程序;它们以各种方式操纵 blob,旨在展示如何在各种场景中使用“loc_t”结构。

    【讨论】:

    • 坏消息...我以为我在网上找到的所有关于这个主题的东西都已经过时了,但如果你告诉我情况仍然如此,那就这样吧。感谢您提供有关这方面的信息以及informix 服务结束
    【解决方案2】:

    在 iSQL 中......

    Load from desc.txt insert into crsabstr_rec;
    

    已加载 3 行。

    desc.txt 是一个 | (管道)分隔的文本文件和txt中的字段数必须与表中的字段数匹配

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多