Openrowset SQL Server中的Unicode/排序规则问题

ct3nt3jp  于 2022-12-03  发布在  SQL Server
关注(0)|答案(1)|浏览(200)

我的CSV包含如下文本:

Côté fenêtres,
carré

我正尝试在SQL Server中使用openrowset打开此CSV文件,如下所示:-

select * from openrowset(BULK 'C:\Import_Orders\Files\PO.csv', 
FORMATFILE = 'C:\Import_Orders\Format\Cust_441211.fmt.txt') as PO

但结果是这样的:

C+¦t+¬ fen+¬tres,
Carr+¬

我如何处理这个问题?如果我需要对这个问题补充什么,请告诉我。
SQL Server 2017数据库服务器版本- Microsoft SQL Server 2017数据库服务器版本(KB 5014553)
这是格式化文件:-

11.0
8
1       SQLCHAR             0       250      "|"      1       PARTNO    ""
2       SQLCHAR             0       250      "|"      2       CODE   ""
3       SQLCHAR             0       250      "|"      3       PRICEKG ""
4       SQLCHAR             0       250      "|"      4       FOOTKG    ""
5       SQLCHAR             0       250      "|"      5       LENGTH    ""
6       SQLCHAR             0       250      "|"      6       QTY   ""
7       SQLCHAR             0       250      "|"      7       COLOR ""
8       SQLCHAR             0       250      "\r\n"   8       TOTKG ""
o7jaxewo

o7jaxewo1#

(1)您可以尝试添加一个附加参数CODEPAGE = '65001'来指定代码页以支持UNICODE字符。
(2)用户可以尝试在格式化文件中使用SQLNCHAR数据类型,而不是SQLCHAR。对于文本文件,应始终为所有字段指定SQLCHAR,除非有UTF‑16编码的Unicode文件,在这种情况下,应使用SQLNCHAR。

查询语句

SELECT * FROM openrowset(BULK 'C:\Import_Orders\Files\PO.csv', 
FORMATFILE = 'C:\Import_Orders\Format\Cust_441211.fmt.txt',
CODEPAGE = '65001') as PO;

相关问题