[英]how to insert query and save json data into sql server using nodejs
[英]How to convert json data to records and insert into a using in sql server
我是sqlserver的新手。 我想將json數據轉換為記錄並插入表中。 我有像這樣的json數據
{
"HEADER":[
{
"seq_id":343,
"max_processed_scn":649044274,
"time_processed":"13-MAR-19 09.03.23.081055 PM",
"status":"COMPLETED"
},
{
"seq_id":344,
"max_processed_scn":649214903,
"time_processed":"15-MAR-19 12.49.31.606172 PM",
"status":"COMPLETED"
}
],
"DETAIL":[
{
"seq_id":11215,
"event_id":1,
"caller_seq":343,
"event_description":"BEGIN.."
},
{
"seq_id":11216,
"event_id":2,
"caller_seq":343,
"event_description":"STARTING"
},
{
"seq_id":11217,
"event_id":2,
"caller_seq":343,
"event_description":"STARTED "
} "event_description":"TOTAL"
]
}
因此,我想將數組“ header”插入一個表,將另一個數組“ Detail”插入另一個表。有人可以幫助我實現這一點。 提前致謝
所以我需要像這樣的明細表數據
seq_id max_processed_scn time_processed status
343 649044274 13-MAR-19 09.03.23.081055 PM COMPLETED
344 649214903 15-MAR-19 12.49.31.606172 PM COMPLETED
我用這個查詢:
DECLARE @json NVARCHAR(MAX)
SET @json =
N'[{
"HEADER":[
{
"seq_id":343,
"max_processed_scn":649044274,
"time_processed":"13-MAR-19 09.03.23.081055 PM",
"status":"COMPLETED"
},
{
"seq_id":344,
"max_processed_scn":649214903,
"time_processed":"15-MAR-19 12.49.31.606172 PM",
"status":"COMPLETED"
}
],
"DETAIL":[
{
"seq_id":11215,
"event_id":1,
"caller_seq":343,
"event_description":"BEGIN.."
},
{
"seq_id":11216,
"event_id":2,
"caller_seq":343,
"event_description":"STARTING"
},
{
"seq_id":11217,
"event_id":2,
"caller_seq":343,
"event_description":"STARTED "
} "event_description":"TOTAL"
]
}
]'
SELECT *
FROM OPENJSON(@json, '$.HEADER')
WITH (seq_id INT, max_processed_scn INT, time_processed NVARCHAR(100), [status] NVARCHAR(100))
您可以在SQL Server 2016及更高版本中使用以下查詢來讀取Json數據並插入所需的表中
樣本數據
declare @json varchar(max) =' {
"HEADER":[
{
"seq_id":343,
"max_processed_scn":649044274,
"time_processed":"13-MAR-19 09.03.23.081055 PM",
"status":"COMPLETED"
},
{
"seq_id":344,
"max_processed_scn":649214903,
"time_processed":"15-MAR-19 12.49.31.606172 PM",
"status":"COMPLETED"
}
],
"DETAIL":[
{
"seq_id":11215,
"event_id":1,
"caller_seq":343,
"event_description":"BEGIN.."
},
{
"seq_id":11216,
"event_id":2,
"caller_seq":343,
"event_description":"STARTING"
},
{
"seq_id":11217,
"event_id":2,
"caller_seq":343,
"event_description":"STARTED "
}
]
}
'
查詢以選擇標題數據
SELECT * FROM OPENJSON(@json, '$.HEADER') WITH (seq_id INT, max_processed_scn INT, time_processed NVARCHAR(50), [status] NVARCHAR(50))
查詢以選擇明細數據
SELECT * FROM OPENJSON(@json, '$.DETAIL') WITH (seq_id INT, event_id INT, caller_seq int, event_description NVARCHAR(255))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.