저장 프로시저 내에서 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)