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..
개요 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 ----..
개요 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 함수는 아래와 같이 동작합니다. ..