<샘플코드에서 사용한 데이터는 HR 스키마이고, 오라클 설치시 생성할 수 있는 기본 스키마 입니다>
아래 샘플은 index by table을 이용한 커서 결과를 저장하는 코드입니다.
create or replace package emp_pkg
is
type emp_table_type is table of employees%rowtype
index by binary_integer;
procedure get_employees(p_emps out emp_table_type );
end;
/
create or replace package body emp_pkg
is
procedure get_employees(p_emps out emp_table_type )
is
begin
for emp_record in (select * from employees)
loop
p_emps(emp_record.employee_id):=emp_record;
end loop;
end;
end;
패키지를 아래와 같이 처리 가능합니다.
declare
v_employees emp_pkg.emp_table_type;
begin
emp_pkg.get_employees(v_employees);
dbms_output.put_line(v_employees(101).first_name);
dbms_output.put_line(v_employees(200).first_name);
for i in 100..110
loop
dbms_output.put_line(v_employees(i).employee_id ||' : '|| v_employees(i).first_name);
end loop;
end;
출력 결과는
Neena
Jennifer
100 : Steven
101 : Neena
102 : Lex
103 : Alexander
104 : Bruce
105 : David
106 : Valli
107 : Diana
108 : Nancy
109 : Daniel
110 : John
'Database > PLSQL' 카테고리의 다른 글
058 - [Oracle PL/SQL] Oracle package - UTL_FILE (0) | 2024.03.12 |
---|---|
057 - [Oracle PL/SQL] Oracle package - DBMS_OUTPUT (0) | 2024.03.12 |
055 - [Oracle PL/SQL] Package - Persistent State and cursor (0) | 2024.03.07 |
054 - [Oracle PL/SQL] Package - Persistent State (0) | 2024.03.07 |
053 - [Oracle PL/SQL] Package - Forward Declaration (0) | 2024.03.06 |