如何在 TEXT 数据类型字段中插入数据? (Informix)
Posted
技术标签:
【中文标题】如何在 TEXT 数据类型字段中插入数据? (Informix)【英文标题】:How can I INSERT data in TEXT datatype field? (Informix) 【发布时间】:2011-11-10 06:38:39 【问题描述】: CREATE TABLE updater
(
nzp_up SERIAL PRIMARY KEY,
version VARCHAR(50),
status INT,
report TEXT
);
INSERT INTO updater (version, status,report) values ('TestVersion' , 0,"123123123");
-617 SQL 错误:必须在此上下文中提供 Blob 数据类型。
【问题讨论】:
您可以使用LOAD
命令。在这里参考我的类似问题:***.com/questions/1074364/…
【参考方案1】:
使用|
(管道)分隔文件,您可以使用LOAD
命令将值插入到blob 和文本数据类型中。我过去也遇到过同样的问题 - 转到我的评论中的链接
【讨论】:
【参考方案2】:查看我的问题:Consistent method of inserting TEXT column to Informix database using JDBC and ODBC
似乎某些工具(例如 ODBC 驱动程序)可以将文本插入为 TEXT
,而其他工具(例如 JDBC 驱动程序)必须使用 PreparedStateent 或其他技术。
【讨论】:
一些驱动程序发现了相关的错误消息,然后将 SQL 转换为使用占位符代替不能用作 BYTE 或 TEXT 值的字符串文字,并将字符串文字转换为 blob 结构 ( loc_t 结构)。其他人不这样做 - 并非不合理,因为所涉及的解析是扭曲的。如果您支持 Informix,请向技术支持注册请求。这个问题已经存在 20 多年了。【参考方案3】:INSERT INTO updater (version, status,report)
values ('TestVersion' , 0,"123123123");
和
INSERT INTO updater (version, status,report)
values ('TestVersion' , 0,'123123123');
在mysql中也有同样的效果。所以让我们尝试在SQL中不使用双引号。
【讨论】:
我问了一些专业人士,他们说没有特定的工具是不可能的(比如 C# 中的流) 遗憾的是,这不适用于 Informix;它不支持 TEXT 或 BYTE 值的字符串文字表示。以上是关于如何在 TEXT 数据类型字段中插入数据? (Informix)的主要内容,如果未能解决你的问题,请参考以下文章