我正在尝试将数据从Postgres数据库迁移到SQL server。为此,我将Postgres数据导出为JSON格式,其思想是将数据插入表中(我已经将Postgres数据库中的模式导入到SQL server中)。
我在玩OPENROWSET函数,但编码似乎有问题。我在文档中注意到有一个代码页选项可以解决这个问题,但是它并没有像我指定的那样做任何事情。
这是我的示例查询:

 SELECT users.*
 FROM OPENROWSET (BULK 'path_to_some.json', SINGLE_CLOB, CODEPAGE = '65001') as j
 CROSS APPLY OPENJSON(BulkColumn)
 WITH(id int,
 first_name nvarchar(max),
 last_name nvarchar(max),
 email nvarchar(max),
 accepts_marketing bit,
 created_at datetime,
 updated_at datetime) AS users
 order by id

有人知道我在这里遗漏了什么吗?

最佳答案

我认为CODEPAGE(bulk_选项)不适用于SINGLE_CLOB,而只适用于FORMATFILE选项。
从OPENROWSET规范:
{format file='格式化文件路径'[]
|单粒子|单粒子|单粒子|单粒子}
应改为:
{(format file='格式化文件路径'可选)
或单块或单块或单块

09-29 21:37