我在更新批量数据时,建临时表aaa
create table AAA
(
A VARCHAR2(40),
B VARCHAR2(40),
C VARCHAR2(40),
D VARCHAR2(40),
E NUMBER(9,4),
F NUMBER(9,4),
G VARCHAR2(40)
)
,将数据存入aaa中,
然后在plsql的test中写如下代码:
-- Created on 2009-3-19 by 肖子杰
declare
a aaa.a%type;--名称
d aaa.d%type;--后处理
e number(9,4);--价格
f number(9,4);--扣率
cursor yb is select a.a,a.e,a.f,a.d from aaa a;
sqlss varchar2(500);
begin
open yb;
loop
fetch yb into a,e,f,d;
exit when yb%notfound;
-- update spl_dyeprice set spl_dyeprice.price=e,spl_dyeprice.dyekl=f where spl_dyeprice.dyefactoryid=d and spl_dyeprice.materialtypestruc=a;
sqlss:='update spl_dyeprice set price='||e||',dyekl='||f||' where dyefactoryid='''||d||''' and materialtypestruc='''||a||'''';
execute immediate sqlss;
end loop;
close yb;
end;
结果正常使用,但是单独使用被注释掉的那一行,则提示错误:无效的数字,不知道为什么
create table AAA
(
A VARCHAR2(40),
B VARCHAR2(40),
C VARCHAR2(40),
D VARCHAR2(40),
E NUMBER(9,4),
F NUMBER(9,4),
G VARCHAR2(40)
)
,将数据存入aaa中,
然后在plsql的test中写如下代码:
-- Created on 2009-3-19 by 肖子杰
declare
a aaa.a%type;--名称
d aaa.d%type;--后处理
e number(9,4);--价格
f number(9,4);--扣率
cursor yb is select a.a,a.e,a.f,a.d from aaa a;
sqlss varchar2(500);
begin
open yb;
loop
fetch yb into a,e,f,d;
exit when yb%notfound;
-- update spl_dyeprice set spl_dyeprice.price=e,spl_dyeprice.dyekl=f where spl_dyeprice.dyefactoryid=d and spl_dyeprice.materialtypestruc=a;
sqlss:='update spl_dyeprice set price='||e||',dyekl='||f||' where dyefactoryid='''||d||''' and materialtypestruc='''||a||'''';
execute immediate sqlss;
end loop;
close yb;
end;
结果正常使用,但是单独使用被注释掉的那一行,则提示错误:无效的数字,不知道为什么
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货