Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How can i pass column name dynamically.

oratechsMay 15 2018 — edited May 17 2018

Hello, can anyone help with below scenario..

i want to pass column name ""J.CXXX"  value dynamically .

  FIRST LOOP i want

     1 2 3 4 5

  SECOND LOOP i want

     88 76 45 65  

declare

v_noofmonths  number := 5;

  l_ccolumns varchar2(100) := 'C008';

  l_varpart    varchar2(100) := regexp_substr(l_ccolumns, '\D+');

  l_numpart    varchar2(100) := regexp_substr(l_ccolumns, '\d+');

  l_digits     number := length(l_numpart);

  p_text       VARCHAR2(100);

begin

     for j in (

          with qry as

                      (

                       select 1 C009,2 C010,3 C011,4 C012, 5 C013,NULL C014,NULL C015,NULL C016  from dual union all

                       select 88,76,65,45,65,NULL,NULL,NULL from dual

                      )

                    select * from qry

              )

      loop

        FOR i IN 1..v_noofmonths

        LOOP

         dbms_output.put_line(j.C009);

         dbms_output.put_line(l_varpart||to_char((to_number(l_numpart) + i),'fm'||rpad('0',l_digits,'0')));      

         END LOOP;

     end loop;

end;                   

/

;

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 14 2018
Added on May 15 2018
12 comments
3,488 views