过程如下:
CREATE OR REPLACE PROCEDURE YST.DB_SHCL_PRE
IS
d1 date;d2 date;
s2 varchar2(20);s3 varchar2(20);s4 varchar2(20);s5 varchar2(20);
v1 number;v2 number;v3 number;v4 number;v5 number;
cursor c1 is select JZDETAILID,fhdh,ljx,zz-pz-kz,credate,inputman from yst_jzdetail where fhdh is not null and substr(fhdh,1,1) <> 'S' and trunc(credate)= trunc(sysdate)-0 and initflag= 1;
BEGIN
open c1;
loop
fetch c1 into v1,s5,s3,v2,d1,s4;
if c1%notfound then
exit;
end if;
--发货方
update yst_jzdetail@sfhorcl set fhdh = 'S'||s3,fhsl = v2,fhsj = d1,s1 = s4 where ljx = s5;
end loop;
close c1;
commit;
END;
/
问题:
游标已经取出数据了,s5='649159','649163'.....
为什么执行无结果,根本没有更新。而在sqlplusw中单独执行
update yst_jzdetail@sfhorcl set fhdh = 'S'||s3,fhsl = v2,fhsj = d1,s1 = s4 where ljx = '649159';
commit;
却执行成功了。
如果把过程中的update换成update yst_jzdetail@sfhorcl set fhdh = 'S'||s3,fhsl = v2,fhsj = d1,s1 = s4 where ljx = '649159';
执行结果中s3,s4并没有更新,是不是字符类型有什么问题呢?
CREATE OR REPLACE PROCEDURE YST.DB_SHCL_PRE
IS
d1 date;d2 date;
s2 varchar2(20);s3 varchar2(20);s4 varchar2(20);s5 varchar2(20);
v1 number;v2 number;v3 number;v4 number;v5 number;
cursor c1 is select JZDETAILID,fhdh,ljx,zz-pz-kz,credate,inputman from yst_jzdetail where fhdh is not null and substr(fhdh,1,1) <> 'S' and trunc(credate)= trunc(sysdate)-0 and initflag= 1;
BEGIN
open c1;
loop
fetch c1 into v1,s5,s3,v2,d1,s4;
if c1%notfound then
exit;
end if;
--发货方
update yst_jzdetail@sfhorcl set fhdh = 'S'||s3,fhsl = v2,fhsj = d1,s1 = s4 where ljx = s5;
end loop;
close c1;
commit;
END;
/
问题:
游标已经取出数据了,s5='649159','649163'.....
为什么执行无结果,根本没有更新。而在sqlplusw中单独执行
update yst_jzdetail@sfhorcl set fhdh = 'S'||s3,fhsl = v2,fhsj = d1,s1 = s4 where ljx = '649159';
commit;
却执行成功了。
如果把过程中的update换成update yst_jzdetail@sfhorcl set fhdh = 'S'||s3,fhsl = v2,fhsj = d1,s1 = s4 where ljx = '649159';
执行结果中s3,s4并没有更新,是不是字符类型有什么问题呢?
解决方案 »
- pl sql 使用的问题
- 在BO里查看报表时,出现无法连接的错误。
- oracle创建的数据库语句转换成同样意思的mysql数据库语句,急急急
- statspack报告中的语句不知道是哪里产生的,不知大家有没有碰到过???????????????????????????
- 怎么导入的表有问题呢,是不是oracle的bug那位高手给看看?
- 如何使用PLSQL向ORACLE里插入图片?
- 高分在线求助;创建索引与查询优化;留名有分
- ADO连接Oracle9i的字符串怎么写?
- 请问用Oracle9作数据库开发,比较合适的电脑配置是什么样的呢?CPU用PIII 1GHz速度如何?
- oracle 奇葩表 奇葩需求 求解答
- win7如何添加oracle odbc数据源
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 Oracle中用一条语句截取字符串
你是说 update后fhsl得到了你要的结果fhdh、s1和这个没有得到你要的结果?
那他们更新后是什么内容?
update yst_jzdetail@sfhorcl set fhdh = 'S'||s3,fhsl = v2,fhsj = d1,s1 = s4 where ljx = s5;
结果:什么都没更新如果过程中换成
update yst_jzdetail@sfhorcl set fhdh = 'S'||s3,fhsl = v2,fhsj = d1,s1 = s4 where ljx = '649159';
结果:fhdh只被改成S,s3并没有加进来;s1根本没有更新。感觉问题还是出在字符类型的问题上。