저장 프로시저 내에서 JSON 및 JSONB 데이터 유형 사용
저장 프로시저 내에서 JSON 및 JSONB 데이터 유형을 사용하는 방법을 알아보세요.
JSON 데이터 유형은 Netezza Performance Server 11.0.3.X, 11.1.X.X 이상에서 지원됩니다.
JSONB 데이터 유형은 Netezza Performance Server 11.1.X.X 이상에서 지원됩니다.
저장 프로시저 내부에서 JSON 및 JSONB 데이터 유형을 사용하는 것은 저장 프로시저 내부에 테이블을 만드는 것과 동일합니다.
테이블 변경, 뷰 만들기, 외부 테이블 만들기, 제약 조건 추가 등과 같은 모든 SQL 작업을 사용할 수 있습니다, 저장 프로시저 내부의 JSON 및 JSONB 데이터 유형에서 지원됩니다.
예:
- 저장 프로시저 내에서 '
json
테이블에 대한 삭제/생성/삽입 쿼리를 실행합니다:TESTSP.ADMIN(ADMIN)$> DROP TABLE <json_table_name> IF EXISTS; TESTSP.ADMIN(ADMIN)$> CREATE TABLE <json_table_name>(C1 JSON); TESTSP.ADMIN(ADMIN)$> INSERT INTO <json_table_name> VALUES('{ "CUSTOMER": "ABK", "ITEMS": {"PRODUCT": "LIGHT","QTY": 63}}');
- 테이블에서 사용 쿼리를 선택합니다:
TESTSP.ADMIN(ADMIN)$> SELECT COUNT(*) INTO tableCnt FROM <json/jsonb_table_name>; TESTSP.ADMIN(ADMIN)$> RETURN tableCnt;
예
- JSON 데이터 유형에 대한 예제
CREATE OR REPLACE PROCEDURE JSONSP() RETURNS integer EXECUTE AS OWNER LANGUAGE NZPLSQL AS BEGIN_PROC DECLARE tableCnt integer; BEGIN DROP TABLE JSONTABLE IF EXISTS; CREATE TABLE JSONTABLE(C1 JSON); INSERT INTO JSONTABLE VALUES('{ "CUSTOMER": "ABK", "ITEMS": {"PRODUCT": "LIGHT","QTY": 63}}'); INSERT INTO JSONTABLE VALUES('{ "CUSTOMER": "PQR", "ITEMS": {"PRODUCT": "LIGHT","QTY": 6}}'); SELECT COUNT(*) INTO tableCnt FROM JSONTABLE; RETURN tableCnt; END; END_PROC;
- 프로시저를 호출하거나 호출합니다:
TESTSP.ADMIN(ADMIN)=> call JSONSP(); JSONSP -------- 2 (1 row)
- 절차 표시:
TESTSP.ADMIN(ADMIN)=> show procedure JSONSP; SCHEMA | RESULT | PROCEDURE | BUILTIN | ARGUMENTS ---------------------------------------- ADMIN | INTEGER | JSONSP | f | () (1 row)
- 프로시저를 호출하거나 호출합니다:
- JSONB 데이터 유형이 있는 테이블의 예제
CREATE OR REPLACE PROCEDURE JSONB_SP() RETURNS integer EXECUTE AS OWNER LANGUAGE NZPLSQL AS BEGIN_PROC DECLARE tableCnt integer; BEGIN DROP TABLE JSONB_TABLE IF EXISTS; CREATE TABLE JSONB_TABLE (C1 JSONB, C2 INT, C3 VARCHAR(50)); INSERT INTO JSONB_TABLE VALUES('{"TITLE": "SLEEPING BEAUTIES", "GENRES": ["FICTION", "THRILLER", "HORROR"], "PUBLISHED":"FALSE"}',1,'ABC'); INSERT INTO JSONB_TABLE VALUES('{"TITLE": "INFLUENCE", "GENRES": ["MARKETING & SALES", "SELF-HELP ", "PSYCHOLOGY"], "PUBLISHED": "TRUE"}',2,'PQR'); SELECT COUNT(*) INTO tableCnt FROM JSONB_TABLE; RETURN tableCnt; END; END_PROC;
- 프로시저를 호출하거나 호출합니다:
TESTSP.ADMIN(ADMIN)=> call JSONB_SP(); JSONB_SP ---------- 2 (1 row)
- 절차 표시:
TESTSP.ADMIN(ADMIN)=> show procedure JSONB_SP; SCHEMA | RESULT | PROCEDURE | BUILTIN | ARGUMENTS ---------------------------------------- ADMIN | INTEGER | JSONB_SP | f | () (1 row)
- 프로시저를 호출하거나 호출합니다: