plsql - Aliasing in Bulk Collect giving error of unimplemented feature -


the problem statement: user specify name based on have pull names of 2 tables table , extract values tables.i have created pl/sql procedure , since select query can return n number of rows i'm using bulk collect. have created , object based on fields want extract. problem columns common in both tables, if don't use alias ambiguous column error , if use error of unimplemented feature.

here's code:

create or replace type recon_obj_vib  object (recon_table_key number(19) ,recon_chglogattr_idxlst  varchar2(1000 char));  create or replace type recon_tab_vib table of recon_obj_vib;  create or replace procedure nomatchreport_proc(tabledesc in varchar2) l_recon_tab_vib recon_tab_vib := recon_tab_vib(); n integer :=0; out varchar2(2000); tablename1  varchar2(25); tablename2 varchar2(25); tabledesc_without_space varchar2(25); tabledesc_ra varchar2(25);  begin  tabledesc_without_space:=regexp_replace(tabledesc,'\s');  tabledesc_ra:=upper('ra_' || tabledesc_without_space || ' %');  out:= 'select recon_table_name recon_tables recon_table_desc = (:value) , rownum=1 , recon_table_name (:username)';  execute immediate out tablename1 using tabledesc,tabledesc_ra;  out:= 'select recon_table_name recon_tables recon_table_desc = (:value) , rownum=1 , recon_table_name  not (:username)';   execute immediate out tablename2 using tabledesc,tabledesc_ra;   out:='select a.recon_table_key,a.recon_chglogattr_idxlst bulk collect  l_recon_tab_vib ' || tablename1  || ' , ' || tablename2 ||  ' b a.re_key = b.re_key , rownum=1';   execute immediate out l_recon_tab_vib;   in 1..l_recon_tab_vib.count     loop     dbms_output.put_line('recon_table_key '||     l_recon_tab_vib(i).recon_table_key ||' recon_chglogattr_idxlst ' || l_recon_tab_vib(i).recon_chglogattr_idxlst );    end loop; end; 

this part:

out:='select a.recon_table_key,a.recon_chglogattr_idxlst bulk collect   l_recon_tab_vib ' || tablename1  || ' , ' || tablename2 ||  ' b a.re_key = b.re_key , rownum=1'; execute immediate out l_recon_tab_vib; 

should be:

out:='select a.recon_table_key,a.recon_chglogattr_idxlst '       || tablename1  || ' , ' || tablename2      ||  ' b a.re_key = b.re_key , rownum=1'; execute immediate bulk collect l_recon_tab_vib; 

i.e. bulk collect into clause part of calling pl/sql not part of dynamic sql.


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -