JOSON 파일 테이블에 넣기
2019. 8. 30. 18:54ㆍDatabase/MSSQL
-- 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
'Database > MSSQL' 카테고리의 다른 글
[MSSQL] 테이블별 컬럼명 가져오기 (0) | 2021.10.26 |
---|---|
SQL BACKUP SCRIPT (0) | 2019.03.25 |
LOOP INSERT 에서 명시적 트랜젝션으로 성능향상 (0) | 2019.03.25 |
LAG 편차 쿼리 (0) | 2019.03.25 |
Lock 체크 (DMV) (0) | 2019.03.22 |