如何在 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)的主要内容,如果未能解决你的问题,请参考以下文章

如何在雪花日期数据类型字段中插入儒略日期

将一个百分数插入到数据库中 字段为啥类型

如何解决mysql enum 类型字段的插入问题

数据类型 text 和 varchar 在 equal to 运算符中不兼容。

如何在 php 数组中插入多个 html 输入字段数据?

将数据插入 Informix 中的 TEXT 类型列