Skip to Main Content

APEX

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 to make dynamic query using DBMS_SQL variable column names

PedroMendezJan 19 2009 — edited Jan 19 2009
First of all i will show a working example of what i intend to do with "EXECUTE IMMEDIATE":

(EXECUTE IMMEDIATE has 32654 Bytes limit, which isn't enough for me so i'm exploring other methods such as DBMS_SQL)


-------------------------------------------------CODE-----------------------------------
create or replace PROCEDURE get_dinamic_query_content
(query_sql IN VARCHAR2, --any valid sql query ('SELECT name, age FROM table')
list_fields IN VARCHAR2) --list of the columns name belonging to the query ( arr_list(1):='name'; arr_list(2):='age';
-- FOR k IN 1..arr_list.count LOOP
-- list_fields := list_fields || '||content.'||arr_list(k)||'||'||'''~cs~'''; )
AS

sql_stmt varchar (30000);

BEGIN




sql_stmt :=
'DECLARE

counter NUMBER:=0;
auxcontent VARCHAR2(30000);

CURSOR content_cursor IS '|| query_sql ||';
content content_cursor%rowtype;

Begin
open content_cursor;
loop
fetch content_cursor into content;
exit when content_cursor%notfound;
begin
auxcontent := auxcontent || '||list_fields||';
end;
counter:=counter+1;
end loop;
close content_cursor;

htp.prn(auxcontent);
END;';


EXECUTE IMMEDIATE sql_stmt;

END;
-------------------------------------------------CODE-----------------------------------



I'm attepting to use DBMS_SQL to perform similar instructions.
Is it possible?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 16 2009
Added on Jan 19 2009
2 comments
629 views