【发布时间】:2021-04-04 22:03:28
【问题描述】:
我是 Oracle Database 和 IBM Integration Bus 的新手,我正在尝试使用 IBM Integration Bus 中 ESQL 的 INSERT INTO 函数来插入 CSV 文件的数据。
我正在使用带有 ISO-8859-1 编码的 DFDL 来读取文件。使用调试器时,该消息在 SQLPLUS 和 SQL Developer 中清晰可读。
我已经尝试更改我的 Oracle 数据库中的 NLS_CHARARCTERSET 设置,尽管我不确定我需要哪种编码。默认情况下它是 AL32UTF8,我尝试了 UTF8,WE8ISO8859P1。
我还更改了 DFDL 的编码并将 ODBC 驱动程序的设置更改为使用 Oracle NLS 设置(默认)、使用 Microsoft 区域设置和使用美国设置。
如果我尝试使用 INSERT INTO 命令,数据库返回反问号或汉字,这显然不是我想要的。
编辑: 如果我硬编码 INSERT INTO 值,它也会返回问号。 CSV 的编码无关紧要。我还发现 CSV 文件的数据显示为空。当我对 INSERT INTO 中的值进行硬编码时,我得到了倒置的问号。
【问题讨论】:
-
不使用IIB,直接使用insert查询能否将相同的数据正确插入数据库?
-
源应用程序在编写文件时使用了什么编码?
-
@frabar 该查询在 SQL Developer 和 SQL Plus 中运行良好。仅供参考,它也适用于 passthru。
-
@kimbert 如果您指的是 CSV 文件的编码。它是 Windows 1250,因为输入文件有像“ß”这样的字符。
标签: oracle odbc ibm-integration-bus embedded-sql