导入JSON文件到SQL Server 2019表执行查询报错求助
问题解决方法
核心错误原因
- 解析JSON变量需使用
OPENJSON()函数,你代码中误写为读取外部数据源的OPENROWSET()函数,该函数不支持传入JSON变量作为参数,是触发@JSON附近语法错误的直接原因 WITH关键字附近的报错是前序函数调用语法错误触发的连锁报错,修正函数调用后该问题会同步消失
修正后的完整代码
DECLARE @JSON varchar(max) -- 读取JSON文件内容到变量,这部分逻辑没问题 SELECT @JSON = BulkColumn FROM OPENROWSET (BULK 'E:\mytestfile.json' , SINGLE_CLOB) import -- 改用OPENJSON解析JSON变量 SELECT * FROM OPENJSON (@JSON) WITH ( [id] int, [data_joined] int, [email] varchar(100), [first_name] varchar(100), [last_login_date] int )
可选优化建议
- 如果JSON中
data_joined、last_login_date存储的是Unix时间戳,可直接在OPENJSON中转换为日期类型,示例:[last_login_date] DATETIME '$.last_login_date' - 若需要将解析结果写入实体表,在
SELECT前补充插入逻辑即可:INSERT INTO 你的目标表名 (id, data_joined, email, first_name, last_login_date) SELECT * FROM OPENJSON (@JSON) WITH ( [id] int, [data_joined] int, [email] varchar(100), [first_name] varchar(100), [last_login_date] int )
内容的提问来源于stack exchange,提问作者learning Linix
相关产品推荐
相关产品推荐

