ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • oracle PL/SQl_rowType변수 및 복합변수 활용
    DataBase/oracle 2020. 3. 22. 21:56

     

     

    (1) 치환연산자 & 를 이용하여 사용자에게 값을 입력받아 연산하기!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    declare
        no1 number := &no1;
        no2 number := &no2;
        vsum number;
    begin
        vsum := no1 + no2;
        dbms_output.put_line('첫번째수 : ' || no1 || ', 두번째수: ' || no2 || ', 합계: '|| vsum);    
    end;
    /
    http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

      no1 number := &no1;

      no2 number := &no2;

      <== 변수를 선언할 때 사용자에게 입력 받겠다고 같이 설정

    실행하면 값을 입력할 수 있는 창이 뜬다!

    (2) 복합변수

        record Type 변수 지정방법

        -- 1) type 타입명 is record ();

        -- 2) 식별자 type 타입명 (식별자는 변수와 같은 개념) 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    declare
       type emp_rec is record                      <== type 명
        (
            emp_id      employees.employee_id%type,
            emp_name    employees.first_name%type,
            emp_job     employees.job_id%type
        );
        
       rec1    emp_rec;                 <== emp_rec에대한 식별자          
        
    begin
        select employee_id, first_name, job_id
        into rec1
        from employees
        where department_id = 10;    
        
        dbms_output.put_line ('사번   이름  업무아이디');
        dbms_output.put_line (rec1.emp_id||' ' || rec1.emp_name || ' ' || rec1.emp_job);
    end;
     
    /
    http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

    ** emp_rec의 변수 rec1을 지정하지않고 그냥 값을 넣으면 안되는건가? 문법이니까 그냥 외우면 되는건가?_?...

     

    (3) 복합변수 _ 값 입력받기

    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
    declare
        type emp_rec2 is record
        (
            emp_id          employees.employee_id%type,
            emp_name        employees.first_name%type,
            emp_email       employees.email%type,
            emp_salary      employees.salary%type
        );
        
        rec2    emp_rec2;
        
        -- 사용자에게 사원번호를 입력받기위해 변수 생성
        vemp_id employees.employee_id%type := '&empid';     -- 여기 왜 '' 형태로 쓰는건지 모르겠당....
                                                         -- 오잉 상관이 없나 ''형태로 안써도 에러안난고 
    위에도 ''형태로 써도 에러안난다
        
    begin
        select employee_id , last_name, nvl(email, '없음'), salary
        into rec2
        from employees
        where employee_id = vemp_id;
        
        dbms_output.put_line('사번 : '|| rec2.emp_id);
        dbms_output.put_line('이름 : '|| rec2.emp_name);
        dbms_output.put_line('이메일 : '|| rec2.emp_email);
        dbms_output.put_line('급여 : '|| rec2.emp_salary);
     
    end;
     
    /
    http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

    'DataBase > oracle' 카테고리의 다른 글

    oracle PS/SQL_제어문  (0) 2020.03.28
    oracle PL/SQL_tableType 변수  (0) 2020.03.23
    oracle PL/SQL_변수 선언 및 데이터 타입  (0) 2020.03.22
    oracle PL/SQL_개념  (0) 2020.03.22
    oracle 계층형 쿼리  (0) 2020.03.22

    댓글

Designed by Tistory.