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
how can we know the count/number of elements of an array? : Sql dba
What is sqlca in db2?
how tsql statements can be written and submitted to the database engine? : Transact sql
how to create a new view in mysql? : Sql dba
Can we want to pass a parameter payroll_id to this external pl/sql function, how do we do it?
What is application trigger?
What does closing a cursor do?
what is a trigger? : Sql dba
How do you bind variables in pl sql?
What is a pl/sql block?
What will you get by the cursor attribute sql%rowcount?
What is a primary key called that is made up of more than one field?
What does (*) mean in sql?
What is procedure and function in sql?
What are different types of sql commands?