Informix 7.3 isql insert语句 - text / blob / clob字段插入错误

时间:2009-07-02 13:33:17

标签: sql insert blob informix isql

绕道而行吗?

我正在尝试将一些数据插入到结构为:

的表中
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

最后一个字段的类型显示为“text”,但在尝试插入此表时,我收到此错误:

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代码处理插入。

2 个答案:

答案 0 :(得分:4)

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'结构。

答案 1 :(得分:2)

在iSQL中

....

Load from desc.txt insert into crsabstr_rec;

已加载3行。

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