Objective: How to print record type values in Oracle PL/SQL .
Solution:
Step 1: Create package fxgn_sample_pkg.
DROP PACKAGE fxgn_sample_pkg;
create or replace
PACKAGE fxgn_sample_pkg
as
TYPE fxgn_sample_rectype IS RECORD (p_name varchar2(40),
p_emp_id number
);
type fxgn_sample_table_rectype is table of fxgn_sample_rectype;
procedure fxgn_sample_prc (fxgn_sample_table_rec1 OUT fxgn_sample_table_rectype );
END fxgn_sample_pkg;
/
create or replace
PACKAGE BODY fxgn_sample_pkg
AS
PROCEDURE fxgn_sample_prc(fxgn_sample_table_rec1 OUT fxgn_sample_table_rectype)
IS
BEGIN
SELECT ename,
empno
BULK COLLECT
INTO fxgn_sample_table_rec1
FROM emp;
END fxgn_sample_prc;
END fxgn_sample_pkg ;
DROP PACKAGE fxgn_sample_pkg;
create or replace
PACKAGE fxgn_sample_pkg
as
TYPE fxgn_sample_rectype IS RECORD (p_name varchar2(40),
p_emp_id number
);
type fxgn_sample_table_rectype is table of fxgn_sample_rectype;
procedure fxgn_sample_prc (fxgn_sample_table_rec1 OUT fxgn_sample_table_rectype );
END fxgn_sample_pkg;
/
create or replace
PACKAGE BODY fxgn_sample_pkg
AS
PROCEDURE fxgn_sample_prc(fxgn_sample_table_rec1 OUT fxgn_sample_table_rectype)
IS
BEGIN
SELECT ename,
empno
BULK COLLECT
INTO fxgn_sample_table_rec1
FROM emp;
END fxgn_sample_prc;
END fxgn_sample_pkg ;
Step 2: Calling
SET serveroutput ON;
DECLARE
l_table_rec_type fxgn_sample_pkg.fxgn_sample_table_rectype;
BEGIN
dbms_output.put_line('Calling fxgn_sample_pkg.fxgn_sample_prc');
fxgn_sample_pkg.fxgn_sample_prc(l_table_rec_type);
FOR l_rec IN 1..l_table_rec_type.count
LOOP
dbms_output.put_line ('Employee Details: ' || l_table_rec_type(l_rec).p_name ||' ['||l_table_rec_type(l_rec).p_emp_id||']' );
END LOOP;
END;
Output:
That's it.
Comments
Post a Comment