1

有办法解决吗??

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

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

4

2 回答 2

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 数据的信息,并将其传递给服务器。

If you need examples in ESQL/C, look at the International Informix User Group web site, and especially the Software Repository. Amongst other things, you'll find the original SQLCMD program (Microsoft's program of the same name is a Johnny-Come-Lately) in source form. It also includes a set of programs that I dub 'vignettes'; they manipulate blobs in various ways, and are designed to show how to use 'loc_t' structures in various scenarios.

于 2009-07-02T14:51:06.903 回答
2

in iSQL....

Load from desc.txt insert into crsabstr_rec;

3 row(s) loaded.

desc.txt is a | (pipe) delimited text file and the number of fields in the txt have to match the number of fields in the table

于 2009-07-09T18:13:13.527 回答