ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Oracle VArray Procedure Sample
    DB/Oracle 2021. 5. 12. 18:26
    반응형
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    -- CREATE OR REPLACE procedure MAT1.P_ADM0008_vTest ( pList in phone_varray_typ ) is
    CREATE OR REPLACE procedure MAT1.P_ADM0008_vTest is 
        CURSOR vTestCursor is 
        select DEPT_NO as dNo, 
               PHONE_LIST as pList
          from mat1.dept_phone_list;
          
          dNo NUMBER(5) := '';
          pList phone_varray_typ := phone_varray_typ();
          
        BEGIN 
            open vTestCursor;
     
            loop    
                fetch vTestCursor                  
                 into dNo,
                      pList;  
            exit when vTestCursor%notfound;
            
                FOR i IN 1 .. pList.count LOOP 
                    dbms_output.put_line(dNo || '-' || pList(i).country_code || '-' || pList(i).area_code || '-' || pList(i).ph_number);  
                END LOOP;
                
            end loop;
        END;
     
     
    ---- Param ------
    varry value = mat1.phone_varray_typ(mat1.phone_typ('111','222','333'),mat1.phone_typ('444','555','666'))
     
     
    -------- Create ------------
    --Create Object Type
    CREATE or replace TYPE phone_typ AS OBJECT (
        country_code  VARCHAR2(20),
        area_code      VARCHAR2(30),
        ph_number      VARCHAR2(30));
     
    --Create VArray Type    
    CREATE TYPE phone_varray_typ AS VARRAY(10) OF phone_typ;
     
    -- Create Table
    CREATE TABLE mat1.dept_phone_list (
      dept_no NUMBER(5),
      phone_list phone_varray_typ);
      
    -- Insert Test Data
    INSERT INTO mat1.dept_phone_list VALUES (
      100,
      phone_varray_typ( phone_typ ('01''650''5550123'),
                          phone_typ ('01''650''5550148'),
                          phone_typ ('01''650''5550192')));
    cs
    반응형

    댓글

Designed by Tistory.