ورود

View Full Version : سوال: ora-00971 missing set keyword



الهام جان نثار
دوشنبه 16 فروردین 1389, 15:59 عصر
سلام
من میخوام با یه برنامه کل دیتای Database رو Update کنم ، به این ترتیب که در تمام Tableها اگر دیتایی از نوع String باشد را مطابق Function ذیل تغییر دهد.
مشکل اینجاست که وقتی آنرا روی دیتای تستی امتحان میکنم به درستی کار میکند ولی با دیتای واقعی خطای ORA-00971 میدهد ولی ساختار و Syntax مربوط به SET صحیح است...!!!!


CREATE OR REPLACE
FUNCTION AllTrimReplace (NAMES IN VARCHAR2) RETURN VARCHAR2
is
STR VARCHAR2(1000);
begin
STR := TRIM(NAMES);
STR := REPLACE(STR, chr(55690) , chr(56204));
STR := REPLACE(STR, chr(55977) , chr(55683));
RETURN STR;
END AllTrimReplace;





CREATE OR REPLACE Procedure elhamProc
IS
column_name varchar2(100);
table_name varchar2(100);
cursor elhamcursor is
select c.column_name, c.table_name from user_tab_columns c inner join user_tables t on c.table_name = t.table_name
where data_type='NVARCHAR2' or data_type='VARCHAR2';
BEGIN
open elhamcursor;
loop
fetch elhamcursor into column_name, table_name;
exit when elhamcursor%NOTFOUND;
execute immediate 'update ' || table_name || ' set ' || column_name || ' = AllTrimReplace(' || column_name || ')';
end loop;
close elhamcursor;
END;