select dynamic column value from a rowtype variable in pl sql

前端 未结 2 1052
旧时难觅i
旧时难觅i 2021-01-29 01:37

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_         


        
2条回答
  •  情深已故
    2021-01-29 02:09

    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.

    Query:

    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;
    /
    

    Query 2:

    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;
    /
    

提交回复
热议问题