0

コンテキスト: SQL Server の一時テーブルの列に保存された次の形式の JSON ドキュメントがあります。

[{"File": {"File_Name": "SCAN_6X_AHMC_AAPC_837I_11182019_11242019.txt", "Last_Modified": "Lastmodified:20191125.121049", "File_Size": "Filesize:7196"}}, {"File": {"File_Name": "SCAN_6X_AHMC_AAPC_837P_11182019_11242019.txt", "Last_Modified": "Lastmodified:20191125.121017", "File_Size": "Filesize:3949"}}]

質問: T-SQL の OPENJSON 関数を使用して、JSON からファイル名、変更日、およびファイル サイズを抽出しようとしています。以下のコード ブロックでは、取得しようとしているフィールドに NULL 値を取得しています。なんで?どうすればこれを修正できますか?

t-sql

SELECT ##jsondump.my_json, jsn.[file_name], jsn.last_modified, jsn.file_size
FROM ##jsondump
OUTER APPLY (

    SELECT * FROM OPENJSON(##jsondump.my_json, '$.File')
    WITH (
        [file_name] NVARCHAR(50) '$.File_Name',
        last_modified NVARCHAR(50) '$.Last_Modified',
        file_size NVARCHAR(50) '$.File_Size'
         )

            ) AS jsn

同様に、この方法も機能しません。考え/提案? ここに画像の説明を入力

DECLARE @json NVARCHAR(MAX)
SET @json = (SELECT my_json FROM ##jsondump)

SELECT json_column.*, 
       JSON_VALUE([value], '$.File_Name') As [File_Name],
       JSON_VALUE([value], '$.Last_Modified') As Last_Modified,
       JSON_VALUE([value], '$.File_Size') As File_Size 
FROM OPENJSON(@json) as json_column 
4

2 に答える 2