Informix JDBC - 使用 JDBC 无法 运行 sql 更新,但是当 运行 使用 dbaccess 时正常

Informix JDBC - fail to run sql update using JDBC, but ok when run using dbaccess

要更新的值包含 1 个类似阿拉伯语的字符,即 x。 Unicode点数是U+0760(我从https://unicode.scarfboy.com/得到的)

如果 SQL 是 运行 使用 dbaccess 更新有效。 如果字符被替换为不同的阿拉伯字符,则更新在 JDBC 和 dbaccess 中都有效。 DB_LOCALE 是 en_US.utf8 。提前谢谢你。

table

create table tbl_demo_1
(
    id serial not null,
    address varchar(100),
    primary key(id)
);
insert into tbl_demo_1 values (1,'somevalue');

SQL

update tbl_demo_1
set address2 = 'BT. 8 ݠ MAIN ROAD'
where id = 1;

OS, IDS, JDK, JDBC

在使用 UTF-8 Informix 数据库时,建议使用 ICU 库而不是 Informix GLS 库,因为 ICU 支持的范围更广。 要启用 ICU,请确保在启动服务器和创建数据库之前将 GL_USEGLU 环境变量设置为 1 或 4。

更多信息在这里: https://informix.hcldoc.com/14.10/help/index.jsp?topic=%2Fcom.ibm.glsug.doc%2Fids_gug_063.htm

根据您的 API(如 JDBC 或 .NET),您可能还需要在连接字符串中包含 GL_USEGLU 才能正常工作。