정규식 및 oracle regexp_substr 과 함께 Oracle 쿼리를 사용하여 JSON 문자열 에서 json 필드를 추출하고 있습니다 .
코드 키의 값을 얻으려고 할 때 잘 작동하고 값을 얻으려고 할 때 결과 키의 값을 얻으려고 할 때 null을 반환합니다.
이 쿼리를 사용하고 있습니다.
select regexp_replace(regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}','"results":\s*("(\w| )*")', 1, level), '"results":\s*"((\w| )*)"', '\1', 1, 1) results
from dual
connect by regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}', '"results":\s*("(\w| )*")', 1, level) is not null;
이 쿼리에서 무엇이 잘못 되었습니까? 감사
다른 데이터 형식을 허용합니다. 결과적으로 {"name":"osama"}
내가 원하는 것은 다음과 같습니다.
select regexp_replace(regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}','"results":\s*{"(.*| )*"\}', 1, level), '"results":\s*(\{.*\})', '\1', 1, 1) results
from dual
connect by regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}', '"results":\{(.*)"\}', 1, level) is not null;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다