Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> problem with execute immediate and function

problem with execute immediate and function

From: <mariano.calandra_at_gmail.com>
Date: 14 Nov 2006 10:44:21 -0800
Message-ID: <1163529861.563627.95110@b28g2000cwb.googlegroups.com>


I have make the follow function:



create or replace function replacedott2
return varchar2 as
csql varchar2(2000);
cursor cur_table is

    select table_name, column_name from all_tab_columns where owner = 'MARIANO' and data_type like '%CHAR%' AND table_name <> 'BIN$FTrKVuKiSsaycOCI4t/SPg==$0';
val_table cur_table%ROWTYPE;
begin

   open cur_table;

     loop
       fetch cur_table into val_table;
       exit when cur_table%NOTFOUND;
       csql := 'UPDATE '||val_table.table_name||' '
            || 'SET '||val_table.column_name||' '
            || '= REPLACE ('||val_table.column_name||', ''Dr'',
''Dott'');';
            execute immediate (csql);
     end loop;

end;

select replacedott2() from DUAL;


The previous command gave me error ORA-00911: invalid character. As debugging I've try to remove the 'execute immediate (csql)' and I've inserted 'return csql', the output string is:


UPDATE ARTICOLO SET DESCRIZIONE = REPLACE (DESCRIZIONE, 'Dr', 'Dott');


If I use only this command at prompt, it will work properly (no error and replace is ok), why don't work if I use as the input of execute immediate command?
Thank you, g'bye Received on Tue Nov 14 2006 - 12:44:21 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US