Hi Guys,

I have a situation where I need to access the column values from rowtype variable. However, the column names are dynamic.

below is sample code:
declare

Cursor c1 is select * from emp;
Cursor c2 is select column_name from xyztable;
v_c2 c2%rowtype;
v_str varchar2
v_value varchar2(200);

begin

for rec in c1
loop
open c2;---this cursor has column names like EMPLOYEE_ID, FIRST_NAME, LAST_NAME etc.
loop
fetch c2 into v_c2;
exit when c2%notfound;

/* now lets say i want to access value of LAST_NAME from cursor c1, so I am writing below code, however it does not work as expected */

v_str:= 'rec.'|| v_c2.column_name; -- this will give me string like "rec.EMPLOYEE_ID"

v_value:=v_str;



end loop;

end loop;



end;
/

Plz help ASAP.Thanks.

Answer Posted / abhishek jee

So what this PL/SQL block is trying to do is post as many records from "emp" table as there are records in "dept" table, i.e., if there are 27 records in "dept" table and 107 records in "emp" table, then the output would show the first 27 records from the "emp" table, isn't that so?

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

How to combine two stored procedures in sql?

802


Can ddl statements be used in pl/sql?

794


Can we write dml inside a function in sql server?

675


What are pl/sql packages?

761


How do I view a table in sql?

717






Does pdo prevent sql injection?

693


What is scalar data type in pl sql?

784


What is the difference between null value, zero, and blank space?

761


how do you control the max size of a heap table? : Sql dba

702


What is trigger in flip flop?

727


What is the difference between a query and a report?

678


what is online transaction processing (oltp)? : Sql dba

713


How to avoid using cursors? What to use instead of cursor and in what cases to do so?

863


When are we going to use truncate and delete?

714


Why primary key is required?

717