iterating thru cursor in Oracle -
i've found question @ http://dba.stackexchange.com/questions/3587/oracle-automate-export-unload-of-data. valid utilize such construction:
for r in (select * table) loop utl_file.put_line(lffilelog, r.row); end loop; i'm trying utilize this:
create or replace procedure p_name(destfolder in varchar2, filename in varchar2) v_filehandle utl_file.file_type; cursor dataset select field1, field2, fieldn table1, table2, (select field3 table3); -- clause ... , on.. begin v_filehandle := utl_file.fopen(destfolder, filename, 'w'); r in dataset loop utl_file.put_line(v_filehandle, r.row); end loop; end; / and getting pls-00302 error states should have defined row component. far undrestand field should exist in query. right?
can write row cursor?
the reply mentionned not complete, think given illustration (pseudo-code) lacks implementation details.
as is:
yourselect clause invalid, aren't selecting anything. want select? the build xx.row xx cursor doesn't exist furthermore, utl_file.get_line procedure accepts varchar2 sec argument, not kind of rowtype you can't name table table (although name "table"). given table mytable(col1, col2, ... , coln) write:
create or replace procedure p_name() v_filehandle utl_file.file_type; cursor dataset select col1, col2, /*...*/ coln mytable; begin /*utl_file.fopen maybe?*/ r in dataset loop utl_file.put_line(v_filehandle, r.col1 ||';'|| r.col2 /*...*/ || r.coln); end loop; end; oracle cursor
No comments:
Post a Comment