Database/MSSQL
JOSON 파일 테이블에 넣기
sonny.kim
2019. 8. 30. 18:54
-- DROP TABLE #TEMP
DECLARE @cnt INT -- 아이템 카운트
DECLARE @qry VARCHAR(MAX)
DECLARE @i INT = 0
--1 . json파일을 #temp 테이블에 입력
SELECT BulkColumn INTO #TEMP
FROM OPENROWSET (BULK 'D:\YOU.json', SINGLE_CLOB) as j;
--2. items count
SELECT @cnt= COUNT(Items.kind)
FROM #TEMP
CROSS APPLY OPENJSON (BulkColumn, N'$.items')
WITH (
kind varchar(100))
AS items
WHILE(@i < @cnt)
BEGIN
SET @qry = '
INSERT INTO YOUR_TABLE
SELECT
JSON_VALUE(BulkColumn, ''$.kind''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].kind''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].id.kind''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.publishedAt''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.channelId''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.title''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.description''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.default.url''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.default.width''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.default.height''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.medium.url''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.medium.width''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.medium.height''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.high.url''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.high.width''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.thumbnails.high.height''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.channelTitle''),
JSON_VALUE(BulkColumn, ''$.items[' + CONVERT(VARCHAR,@i) + '].snippet.liveBroadcastContent'')
FROM #TEMP'
PRINT @qry
SET @i = @i + 1
END