2016-07-18 52 views
0

以下のような列にJSON文字列があります。 Oracleバージョン - 12CJSON文字列オラクルからの抽出

結果は以下のようになります。私は最初の花ブレースと括弧を削除するにはどうすればよい

{ 
[ 
{ 
"Employee_id": 1 
,"Salary":3206.93 
} 
] 
} 

は..

{ 
    "Employee_id": 1 
    ,"Salary":3206.93 
    } 

SELECT regexp_substr('"abc{[{def}]}ghi"', '\[(.+)\]') match FROM dual;

のような正規表現を使用してみました

しかし、動作しませんでした。

+0

あなたは近くでした。 REGEXP_SUBSTRにはオプションが必要です。 regexp_substr(json_data_col、 '\ [(。*)\]'、1,1、 'n')(https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions138) .htm) –

+0

REGEXP_SUBSTRは結果に角括弧を含むので、トリムする必要があることに注意してください。 –

+0

[pljson](https://github.com/pljson/pljson)または同様のライブラリまたはツール – tbone

答えて

1
select replace(replace(myColumn, '{[{', '{'), '}]}', '}') 
from myTable 

このメソッドは、この列に常にJSON配列の単一の要素が含まれ、JSONオブジェクトに他のJSONオブジェクトが含まれていない場合にのみ機能します。自己責任で使用してください:)

関連する問題