I need to get the specific column value from rowtype variable. My sample code is
declare
col_name varchar2(100);
col_val varchar2(100);
TYPE column_table_
create table column_table(column_name varchar2(100), column_value varchar2(100));
You can do this without using bulk collect. Simple FOR
loop should suffice.
declare
col_name column_table.column_name%type;
col_val column_table.column_value%type;
begin
for data_table in (SELECT * FROM COLUMN_TABLE)
loop
col_name := data_table.COLUMN_NAME;
col_val := data_table.COLUMN_VALUE;
dbms_output.put_line(col_name ||' '|| col_val);
end loop;
end;
/
Using bulk collect
:
declare
col_name column_table.column_name%type;
col_val column_table.column_value%type;
type ct_tab is table of column_table%rowtype;
v_ct ct_tab;
begin
select * bulk collect into v_ct
from column_table;
for i in 1..v_ct.count loop
col_name := v_ct(i).column_name;
col_val := v_ct(i).column_value;
dbms_output.put_line(col_name ||' '|| col_val);
end loop;
end;
/