I have written code in Dbms_sql form
Can anybody tell me how to use dynamic sql for below code ,..
If possible please rewriie below code in dynamic sql form and resend it
Thanks in advance ,,,,
Can anybody tell me how to use dynamic sql for below code ,..
If possible please rewriie below code in dynamic sql form and resend it
Thanks in advance ,,,,
Code:
create or replace function utlfile_gen ( p_query in VARCHAR2, p_separator in VARCHAR2 default '~', p_dir in VARCHAR2, p_filename in VARCHAR2 ) return number AUTHID CURRENT_USER is l_output utl_file.file_type; l_theCursor integer default dbms_sql.open_cursor; l_columnValue varchar2(2000); l_status integer; l_colCnt number default 0; l_separator varchar2(10) default ''; l_cnt number default 0; l_sql varchar2(1000); begin l_output := utl_file.fopen( p_dir, p_filename, 'w' ); dbms_sql.parse( l_theCursor, p_query, dbms_sql.native ); for i in 1 .. 1000 loop BEGIN dbms_sql.define_column( l_theCursor, i,l_columnValue, 2000 ); l_colCnt := i; exception when others then if ( sqlcode = -1007 ) then exit; else raise; end if; end; end loop; dbms_sql.define_column( l_theCursor, 1, l_columnValue,2000 ); l_status := dbms_sql.execute(l_theCursor); loop exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 ); l_separator := ''; for i in 1 .. l_colCnt loop dbms_sql.column_value( l_theCursor, i,l_columnValue ); utl_file.put( l_output, l_separator ||l_columnValue ); l_separator := p_separator; end loop; utl_file.new_line( l_output ); l_cnt := l_cnt+1; end loop; dbms_sql.close_cursor(l_theCursor); utl_file.fclose( l_output ); return l_cnt; end utlfile_gen;
Comment