2016-08-05 2 views
2

저는 데이터베이스의 clob 열에 A_DOC이라는 자바 클래스 A를 저장하려고합니다.Oracle 12c에서 CLOB로 저장된 JSON 배열의 요소 수를 얻는 방법은 무엇입니까?

(A)의 구조는 같다 :

{ 

id : 123 

var1: abc 

subvalues : [{ 

id: 1 
value : a 

}, 
{ 
id: 1 

value :b 
} 

... 

} 
]} 

가 나는 등

select json_query(a.A_DOC, '$.subvalues.value') from table_name a; 

과 같은 일을 할 수있어,하지만 난 방법을 찾고 있어요 어떻게하면의 수를 계산 요소를 SQL 쿼리를 통해 subvalues ​​배열에 추가합니다. 이것이 가능한가?

답변

3

당신은 JSON_TABLE를 사용할 수 있습니다

SELECT 
    id, var1, count(sub_id) subvalues 
FROM 
    JSON_TABLE (
     to_clob('{ id: 123, var1: "abc", subvalues : [{ id: 1, value: "a", }, { id: 2, value: "b" } ]}'), 
     '$' 
     COLUMNS (
      id NUMBER PATH '$.id', 
      var1 VARCHAR PATH '$.var1', 
      NESTED PATH '$.subvalues[*]' 
      COLUMNS (
       sub_id NUMBER PATH '$.id' 
      ) 
     ) 
    ) 
GROUP BY id, var1 
+1

'json_count ('[...]') '이나 뭐 같은 몇 가지 간단한 기능이? – Toolkit

관련 문제