绕道而行吗?
我正在尝试将一些数据插入到结构为:
的表中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代码处理插入。
答案 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)
....
Load from desc.txt insert into crsabstr_rec;
已加载3行。
desc.txt是| (管道)分隔的文本文件和txt中的字段数必须与表中的字段数相匹配