................
StrSql := ' select t.itemindex,t.checkmethod,t.checkevaluate from telldo.satetyEvaluate '
open Tempcourse for StrSql ;
loop
Fetch Tempcourse into
itemindex, -- varchar2(50)
checkmethod, -- varchar2(4000)
checkevaluate; -- varchar2(4000)
StrSql:=' insert into telldo.countySatetyEvaluate (itemindex,checkmethod,checkevaluate,mainid) value('''|| itemindex ||''','''|| checkmethod || ''','''|| checkevaluate||''',telldo.SEQ_satetyEvluate)';
execute immediate StrSql;
end loop ;
-----------------------------------------------------------------------------------------
satetyEvaluate 表中存储的是一个国家标准,有700多条记录.我debug 跟踪过程中发现,循环了20多条记录后,报错。
我猜是变量中含有非法字符,我该怎么才能把数据正确插入到表中呢?
如果从satetyEvaluate 中删除80%的记录,则可以正确插入到新表中。
StrSql := ' select t.itemindex,t.checkmethod,t.checkevaluate from telldo.satetyEvaluate '
open Tempcourse for StrSql ;
loop
Fetch Tempcourse into
itemindex, -- varchar2(50)
checkmethod, -- varchar2(4000)
checkevaluate; -- varchar2(4000)
StrSql:=' insert into telldo.countySatetyEvaluate (itemindex,checkmethod,checkevaluate,mainid) value('''|| itemindex ||''','''|| checkmethod || ''','''|| checkevaluate||''',telldo.SEQ_satetyEvluate)';
execute immediate StrSql;
end loop ;
-----------------------------------------------------------------------------------------
satetyEvaluate 表中存储的是一个国家标准,有700多条记录.我debug 跟踪过程中发现,循环了20多条记录后,报错。
我猜是变量中含有非法字符,我该怎么才能把数据正确插入到表中呢?
如果从satetyEvaluate 中删除80%的记录,则可以正确插入到新表中。
execute immediate StrSql; 不用游标,直接insert
你原来的sql,如果某个变量有单引号,就会有问题,你也可以把变量里的一个单引号替换成两个