JSON Relational Duality #3 - M:1 조인 Duality 뷰
·
Oracle/JSON
JSON Relational Duality #1 - 단순 Duality 뷰 JSON Relational Duality #2 - 1:M 조인 Duality 뷰 JSON Relational Duality #3 - M:1 조인 Duality 뷰 지난 글에 이어 이번 글에서는 M:1 조인 Duality 뷰의 동작에 대해 살펴보겠습니다. 준비테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION_FULL------------23.4.0.24.051 row selected. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.DROP TABLE t1 PURGE;DROP TABLE t2 PURGE;CREATE TABLE t1 (c1..
JSON Relational Duality #2 - 1:M 조인 Duality 뷰
·
Oracle/JSON
JSON Relational Duality #1 - 단순 Duality 뷰 JSON Relational Duality #2 - 1:M 조인 Duality 뷰 JSON Relational Duality #3 - M:1 조인 Duality 뷰 지난 글에 이어 이번 글에서는 1:M 조인 Duality 뷰의 동작에 대해 살펴보겠습니다. 준비테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION_FULL------------23.4.0.24.051 row selected. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.-- 2DROP TABLE t1 PURGE;DROP TABLE t2 PURGE;CREATE TABLE t1..
JSON Relational Duality #1 - 단순 Duality 뷰
·
Oracle/JSON
JSON Relational Duality #1 - 단순 Duality 뷰JSON Relational Duality #2 - 1:M 조인 Duality 뷰JSON Relational Duality #3 - M:1 조인 Duality 뷰 Oracle 23ai에 JSON Relational Duality 기능이 추가되었습니다. 이 기능을 사용하면 JSON-Relational Duality 뷰(이후 Duality 뷰)를 통해 RDB 모델을 JSON 문서로 조회하거나 변경할 수 있습니다. 이 글에서는 조인이 없는 단순 뷰의 동작에 대해 살펴보겠습니다. JSON Relational Duality에 대한 상세한 내용은 JSON-Relational Duality Developer's Guide를 참고하세요. 준비테스..
JSON_TRANSFORM 함수 기능 개선
·
Oracle/JSON
오라클 23ai에서 JSON_TRANSFORM 함수의 기능이 대폭 개선되었습니다. 이 글에서 여러 개선 기능 중 산술 연산(arithmetic operation)에 대해 살펴보겠습니다. 테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version; VERSION_FULL------------23.3.0.23.09 1 row selected. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.-- 2DROP TABLE t1 PURGE;CREATE TABLE t1 (c1 JSON); INSERT INTO t1 VALUES ('{ "instId":1, "statList":[ {"statId":1,"valueList":[..
JSON PASSING 절 개선
·
Oracle/JSON
오라클 23ai에서 다수의 바인드 변수를 사용할 수 있게  JSON PASSING 절의 기능이 개선되었습니다. 이번 글에서 관련 내용을 살펴보겠습니다. 테스트 버전은 아래와 같습니다.-- 1SELECT version_full FROM product_component_version;VERSION_FULL------------23.3.0.23.091 row selected. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.-- 2DROP TABLE t1 PURGE;CREATE TABLE t1 (c1 JSON);INSERT INTO t1 VALUES ('{ "instId":1, "statList":[ {"statId":1,"valueList":[{"type":"MIN","value":..
CSV to JSON Array
·
Oracle/JSON
Oracle은 아쉽게도 CSV 형식의 문자 값을 JSON Array로 변환하는 기능을 제공하지 않습니다. 아래와 같이 CSV 형식의 문자 값을 JSON Array 형식으로 변환하는 사용자 정의 함수를 생성하겠습니다. -- 1 CREATE OR REPLACE FUNCTION fnc_csv_to_jarray ( i_val IN CLOB , i_del IN VARCHAR2 DEFAULT ',' , i_typ IN VARCHAR2 DEFAULT 'C' -- C, N ) RETURN CLOB -- RETURN JSON IS PRAGMA UDF; TYPE taa_varchar2 IS TABLE OF VARCHAR2(32747) INDEX BY PLS_INTEGER; v_buf VARCHAR2(32767); v_tm..
JSON_EACH 함수
·
Oracle/JSON
개요 PostgreSQL의 JSON_EACH 함수는 key-value로 구성된 JSON 오브젝트를 로우 형식으로 반환합니다. Oracle Database는 JSON_EACH 함수를 제공하지 않아 PL/SQL 함수를 통해 JSON_EACH 함수 기능을 구현해야 합니다. PostgreSQL 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 JSON); INSERT INTO t1 VALUES ('{"A":1,"B":2}'); COMMIT; JSON_EACH 함수는 아래와 같이 동작합니다. -- 2 SELECT b.key, b.value FROM t1 a, JSON_EACH (a.c1) b; key | value ----..
Unnest JSON Array
·
Oracle/JSON
개요 PostgreSQL의 UNNEST 함수는 배열 값을 로우 형식으로 반환합니다. 다수의 배열 값을 입력하면 같은 위치의 배열 값이 하나의 로우로 반환됩니다. Oracle Database는 JSON 배열과 PL/SQL 함수로 유사한 기능을 구현할 수 있습니다. PostgreSQL 테스트를 위해 아래와 같이 테이블을 생성하겠습니다. -- 1 DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 INTEGER[], c2 TEXT[]); INSERT INTO t1 VALUES ('{1,2,3}', '{"A","B"}'); -- INSERT INTO t1 VALUES (ARRAY[1,2,3], ARRAY['A','B']); COMMIT; UNNEST 함수는 아래와 같이 동작합니다. ..