[Oracle]
Json_arrayagg , json_object
-> oracle query 데이터 값을 json_object 값으로 받을 때 사용
# query
select * from t_board;
# query
select json_arrayagg(
json_object(
key 'board_idx' value b.board_idx,
key 'title' value b.title,
key 'contents' value b.hit_cnt,
key 'creator_id' value b.creator_id,
key 'updater_id' value b.updater_id,
key 'delete_yn' value b.delete_yn
)
) as json_data
from t_board b
ORDER BY b.board_idx;
[{"board_idx":1020,"title":"test1","contents":0,"creator_id":1,"updater_id":1,"delete_yn":"N"},{"board_idx":1021,"title":"test2","contents":0,"creator_id":2,"updater_id":2,"delete_yn":"N"},{"board_idx":1022,"title":"test3","contents":0,"creator_id":3,"updater_id":3,"delete_yn":"N"}]
=> 인터넷에 찾아보면
SELECT JSON_OBJECT(*) FROM t_board;
-> 참고 자료에 보면 오라클 12.2 이상 버전에서는 가능 하다고 하는데
버전 확인 해보니
흠.
낮은 버전은 아래와 같음.
-> 으로도 위와 같은 결과를 받을 수 있다고 하는데, 누락된 표현식이라는 에러 뜨면서 안됨.
오라클 버전 문제. oracle 19c는 될거같음.
[postGresql]
json_agg
# query
select json_agg(b) from (select * from t_board ) as b;
[{"board_idx":1020,"title":"test1","contents":0,"creator_id":1,"updater_id":1,"delete_yn":"N"},{"board_idx":1021,"title":"test2","contents":0,"creator_id":2,"updater_id":2,"delete_yn":"N"},{"board_idx":1022,"title":"test3","contents":0,"creator_id":3,"updater_id":3,"delete_yn":"N"}]
같은 결과로 나옴.
'DB > Oracle' 카테고리의 다른 글
[Oracle] 여러 행을 하나의 컬럼으로 합치기 (WM_CONCAT, XMLELEMENT,XMLAGG) (0) | 2022.12.16 |
---|---|
[Oracle] 7일 안에 비밀번호가 만기될 것입니다. (0) | 2022.12.16 |
[Oracle] oracle 버전 확인. (0) | 2022.12.08 |