How to get field name dynamically in oracle pl/sql query? -
i have table contains fields named 'value1','value2', 'value3'. in sql code have variable selectedvalue of type number gets value dynamically inside loop in code. have simple query this:
select value1 val_table;
so want select value1 when selectedvalue = 1, value2 when selectedvalue = 2, value3 when selectedvalue = 3.
how can field name dynamically in select statement depending on value of selectedvalue variable?
the simplest thing be:
declare anumber number; begin case selectedvalue when 1 select value1 anumber val_table; when 2 select value2 anumber val_table; when 3 select value3 anumber val_table; end case; dbms_output.put_line('anumber=' || anumber); end;
if want make more complicated can following:
declare acursor sys_refcursor; strquery varchar2(1000); strfield varchar2(20); anumber number; begin case selectedvalue when 1 strfield := 'value1'; when 2 strfield := 'value2'; when 3 strfield := 'value3'; end case; strquery := 'select ' || strfield || ' val_table'; open acursor strquery; loop fetch acursor anumber; exit when acursor%notfound; dbms_output.put_line('anumber=' || anumber); end loop; close acursor; end;
share , enjoy.
Comments
Post a Comment