2017-10-30 15 views
0

SQL Serverの使用2017テーブルに格納する単一のJSONドキュメントを含む単一のJSONファイルを解析する方法を理解しました。複数のJSONドキュメントの処理方法

しかし、多くのJSONドキュメントを含むファイルを処理できる必要があります。これを行う組み込み関数はありますか?あるいは誰でもこのことがどうやってできるのか説明できますか?

答えて

0

OPENROWSET(BULK)を使用すると、ファイルシステムからJSONファイルのセットをローカル変数に一度に1つずつ読み込むことができます。ファイルは多少自分自身を繰り返しbook<index>.json

DECLARE @i INT = 1 
DECLARE @json AS NVARCHAR(MAX) 

WHILE(@i < 10) 
BEGIN 
    SET @file = 'C:\JSON\Books\book' + cast(@i AS VARCHAR(5)) + '.json'; 
    SELECT @json = BulkColumn FROM OPENROWSET (BULK (@file), SINGLE_CLOB) AS j 
    SELECT * FROM OPENJSON(@json) AS json 
    -- Optionally, save the JSON text in a table. 
    SET @i = @i + 1 ; 
END 

Reference

+0

私は自分自身を最初に明確にしていないかもしれませんが、私はこれを理解したと思います。 1.私は500個の個別のJSON文書のファイルを1つ作成しました 2.最初の行として括弧( "[")を、最後の行として閉じ括弧を手動で追加しました。 3.私は、ファイル照会するために、この構文を使用:。SQ1を選択 を '* OPENROWSET (BULKから 'C:\ SQL Server Management Studioの\プロジェクト\ユーザー名\ドキュメント\ Users \ユーザーjson_files \ dev_AllJsonDownload.json'、SINGLE_CLOBこれは私が望んでいたものを返さSQ1 ' として)などのMyTest CROSSは( ... ... ... )でOPENJSON(BulkColumn) を適用します。 – CarCrazyBen

+0

@CarCrazyBen Awesome !!解決策を回答として投稿してください。 –

1

命名されているものと、私は、私は、これは考え出したと思います。

  1. 私は500のindivdual JSON文書
  2. の単一のファイルを作成し、私は手動で 第一と最後の行としてJSON特有の開閉ブラケットラケットを追加しました。これは私が望んでいたものを返さ

    select SQ1.* from OPENROWSET (BULK 'C:\Users\Username\Documents\SQL Server Management Studio\Projects\json_files\dev_AllJsonDownload.json', SINGLE_CLOB) as mytest CROSS APPLY OPENJSON(BulkColumn) WITH (...colA ...colB ...colC ...colN) as SQ1

  • は、私は、ファイルを照会するために、この構文を使用していました。

    関連する問題