Как сохранить данные файла JSON по локальному пути в таблицу SQL? - PullRequest
0 голосов
/ 24 августа 2018

Я хочу сохранить данные файла JSON, которые находятся в моем локальном пути, в таблицу SQL.

Мой локальный путь, в котором находится файл JSON, - E: \ 20180824LocalDump.json

Я использовал приведенный ниже код в SQL для получения данных из файла JSON, но получил ошибки.

DECLARE @Details VARCHAR(MAX)  
SELECT @Details = BulkColumn FROM OPENROWSET(BULK 'E:\20180824LocalDump.json', SINGLE_BLOB) JSON;   
SELECT * FROM OPENJSON(@Details)   
WITH(Departure_airport nvarchar(50)  ,
    DisplayName nvarchar(40), 
    Email nvarchar(60),
    Keep_me_deals nvarchar(40),
    Phone_Code nvarchar(50),
    Provider nvarchar(50),
    SignUpDate nvarchar(50),
    Telephone nvarchar(50),
    [Platform] nvarchar(50),
    AppVersion nvarchar(40))  

Создал таблицу, как показано ниже:

Create Table Dump
(
Departure_airport nvarchar(50),
DisplayName nvarchar(40),
Email nvarchar(60),
Keep_me_deals nvarchar(40),
Phone_Code nvarchar(50),
Provider nvarchar(50),
SignUpDate nvarchar(50),
Telephone nvarchar(50),
[Platform] nvarchar(50),
AppVersion nvarchar(40)
)

Содержимое моего файла Json:

[{"Departure_airport":"Test","DisplayName":"Test","Email":"Tst","Keep_me_deals":"Test","Phone_Code":"Test","Provider":"Test","SignUpDate":"Test","Telephone":"Test","Platform":"Test","AppVersion":"Test"},{"Departure_airport":"Test","DisplayName":"Test","Email":"Tst","Keep_me_deals":"Test","Phone_Code":"Test","Provider":"Test","SignUpDate":"Test","Telephone":"Test","Platform":"Test","AppVersion":"Test"},{"Departure_airport":"Test for IE","DisplayName":"Test for IE","Email":"Tst for IE","Keep_me_deals":"Test for IE","Phone_Code":"Test for IE","Provider":"Test for IE","SignUpDate":"Test for IE","Telephone":"Test for IE","Platform":"Test for IE","AppVersion":"Test for IE"},{"Departure_airport":"Test for UK","DisplayName":"Test for UK","Email":"Tst for UK","Keep_me_deals":"Test for UK","Phone_Code":"Test for UK","Provider":"Test for UK","SignUpDate":"Test for UK","Telephone":"Test for UK","Platform":"Test for UK","AppVersion":"Test for UK"},{"Departure_airport":"Test for UK 1","DisplayName":"Test for UK 1","Email":"Tst for UK 1","Keep_me_deals":"Test for UK 1","Phone_Code":"Test for UK 1","Provider":"Test for UK 1","SignUpDate":"Test for UK 1","Telephone":"Test for UK 1","Platform":"Test for UK 1","AppVersion":"Test for UK 1"}]

Я получаю сообщение об ошибке:

Неверное имя объекта 'OPENJSON' в SQL.

Пожалуйста, помогите мне в этом

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

К сожалению, вы не можете использовать openjson с SQL Server 2014: встроенная функция json была введена в SQL Server 2016 (больше информации об openjson здесь ).

Выдержка изсвязанная страница:

ОТНОСИТСЯ К: Серверу ( начиная с 2016 года )

Вы можете импортировать файл json с помощью OPENROWSET, новам придется полагаться на функции обработки строк или пользовательские функции для извлечения данных из файла json.

0 голосов
/ 24 августа 2018

Если вы используете SQL 2016 или более позднюю версию, вам также следует проверить уровень совместимости базы данных, из которой вы выполняете запрос.

USE <your database>;  
GO  
SELECT compatibility_level FROM sys.databases WHERE name = '<your database>';  
GO  

Если это не менее 130, вам нужно (с любезного разрешения вашего администратора БД) изменить его.

ALTER DATABASE <your database> SET COMPATIBILITY_LEVEL = 130;  
GO

Вы, вероятно, хотите, чтобы Google использовал другие эффекты изменения уровня совместимости, но это никогда не вызывало у меня проблемы.

...