2016-07-18 2 views
0

다음과 같은 열에 JSON 문자열이 있습니다. 오라클 버전 - 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 개체가 포함되어 있지 않은 경우에만 작동합니다. 그렇지 않으면 중단 될 수 있습니다. 자신의 책임하에 사용하십시오.

관련 문제