sql >> データベース >  >> RDS >> Oracle

OracleのJSON_ARRAY()関数

    Oracle Databaseでは、JSON_ARRAY() 関数は、SQLスカラー式のシーケンスまたは1つのコレクションタイプインスタンスVARRAYからJSON配列を作成します またはNESTED TABLE

    構文

    構文は次のようになります:

    JSON_ARRAY
      ( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
       [ JSON_on_null_clause ] [ JSON_returning_clause ]
       [ STRICT ]  )

    場所:

    • expr JSONオブジェクト、JSON配列、数値リテラル、テキストリテラル、日付、タイムスタンプ、またはnullに評価されるSQL式です。 。
    • FORMAT JSON 入力文字列がJSONであるため、出力で引用符で囲まれないことを示します。
    • JSON_on_null_clause exprのときに使用する動作を指定します null値が含まれています(つまり、出力にnull値が含まれるか含まれないかのいずれかです)。
    • JSON_returning_clause 戻り値のタイプを指定します。
    • STRICT JSON生成関数の出力が正しいJSONであるかどうかを確認します。チェックに失敗すると、構文エラーが発生します。

    これがどのように機能するかを示す例です:

    SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;

    結果:

    [1,2,3]

    ネスト

    JSON_ARRAY()をネストすることもできます 別のJSON_ARRAY()内の関数 機能:

    SELECT JSON_ARRAY(
        JSON_ARRAY(1, 2, 3),
        JSON_ARRAY(4, 5, 6)
        )
      FROM DUAL;

    結果:

    [[1,2,3],[4,5,6]]

    FORMAT JSON 条項

    FORMAT JSONを使用できます 入力文字列がJSONであるため、出力で引用符で囲まないことを示す句。

    デモンストレーションの例を次に示します。

    SELECT 
        JSON_ARRAY('{"a":1}') AS r1,
        JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
    FROM DUAL;

    結果:

                  R1           R2 
    ________________ ____________ 
    ["{\"a\":1}"]    [{"a":1}]   

    ヌル値

    結果の配列にnull値を含めるかどうかを指定できます。

    それらを含めるには、NULL ON NULLを使用します :

    SELECT 
        JSON_ARRAY(1, null, 3 NULL ON NULL)
    FROM DUAL;

    結果:

    [1,null,3]

    それらを除外するには、ABSENT ON NULLを使用します :

    SELECT 
        JSON_ARRAY(1, null, 3 ABSENT ON NULL)
    FROM DUAL;

    結果:

    [1,3]

    ABSENT ON NULL デフォルトです。

    この関数の詳細については、Oracleのドキュメントを参照してください。


    1. SQL Server v.Next:STRING_AGG()のパフォーマンス

    2. テーブル変数にインデックスを作成する

    3. SQL Server(SSMS)のデータベースの互換性レベルを確認/変更する

    4. MySQLクエリが返した行数をカウントするにはどうすればよいですか?