본문 바로가기
오라클 게시판/오라클 함수

[오라클 SQL 함수] POWERMULTISET 함수

by 기서무나구물 2021. 10. 19.

포스팅 목차

     

    o POWERMULTISET

     


    문법

    powermultiset::=

     


    목적

    POWERMULTISET함수는 입력된 중첩(nested) 테이블의 공백을 제외한 모든 부분집합(submultisets)을 포함한 중첩 테이블의 중첩된 테이블을 반환한다.

    • 인수 expr은 중첩 테이블을 평가하는 임의의 식을 지정할 수 있다.]
    • 만약 expr이 Null인 경우, 오라클은 NULL을 반환
    • 만약 expr이 비어있는 중첩 테이블인 경우, 오라클은 에러를 반환.
    • 중첩 테이블의 원소 형태는 비교 가능할 필요가 있다. 스칼라 이외 형태의 비교는 "Comparison Conditions " 참조.
      주 의 : 이 함수는 PL/SQL에서 지원하지 않는다.

     


    예제

    먼저 cust_address_tab_type 데이터형의 중첩 테이블을 생성한다.

    Oracle Program
    CREATE TYPE cust_address_tab_tab_typ
      AS TABLE OF cust_address_tab_typ;

    이제 POWERMULTISET 함수를 사용하여 customers_demo 테이블에서 중첩 테이블 열 cust_address_ntab을 선택한다.

    Oracle Program
    SELECT CAST(POWERMULTISET(cust_address_ntab) AS cust_address_tab_tab_typ) 
    FROM   customers_demo;

     

    Results
    CAST(POWERMULTISET(CUST_ADDRESS_NTAB) AS CUST_ADDRESS_TAB_TAB_TYP)
      (STREET_ADDRESS, POSTAL_CODE, CITY, STATE_PROVINCE, COUNTRY_ID)
    ------------------------------------------------------------------
    CUST_ADDRESS_TAB_TAB_TYP(CUST_ADDRESS_TAB_TYP(CUST_ADDRESS_TYP
      ('514 W Superior St', '46901', 'Kokomo', 'IN', 'US')))
    CUST_ADDRESS_TAB_TAB_TYP(CUST_ADDRESS_TAB_TYP(CUST_ADDRESS_TYP
      ('2515 Bloyd Ave', '46218', 'Indianapolis', 'IN', 'US')))
    CUST_ADDRESS_TAB_TAB_TYP(CUST_ADDRESS_TAB_TYP(CUST_ADDRESS_TYP
      ('8768 N State Rd 37', '47404', 'Bloomington', 'IN', 'US')))
    CUST_ADDRESS_TAB_TAB_TYP(CUST_ADDRESS_TAB_TYP(CUST_ADDRESS_TYP
      ('6445 Bay Harbor Ln', '46254', 'Indianapolis', 'IN', 'US')))
    . . .

    이전 예제에서는 customers_demo 테이블과 데이터를 포함한 중첩 테이블 열이 필요하다. 이 테이블과 중첩 테이블 열을 생성하기 위해서는 "Multiset Operators " 참조.

     

     


    엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크

     

    SAS 함수(SAS Function) 리스트 링크
    반응형

    댓글