您的位置:程序门 -> db2 -> 基础类



高分求教:update语句无法执行


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


高分求教:update语句无法执行[已结贴,结贴人:hyhy512]
发表于:2007-12-07 13:54:08 楼主
操作系统:win2000
数据库:db28i
数据源:tkdl
说明:表heyong.f_report1是tkdl下的表,表system.ipe_chdrinfo是tkdl下做的连接数据源
            tkii的联合数据对象下的表
update语句如下:
update   heyong.f_report1   f
set   (f.agntnum,f.cnttype,f.campaign,f.cownnum)   =
          (select   b.agntnum,b.cnttype,b.campaign,b.cownnum
            from   system.ipe_chdrinfo   b
            where   f.rldgacct   =   b.chdrnum)
where     f.trandate   between     20030101   and   20071204;
我在“命令编辑器”运行这个个update语句时,一个多小时没有结束,中止后表f_report1   被锁,并提示错误:
db21034e     该命令被当作   sql
语句来处理,因为它不是有效的“命令行处理器”命令。在   sql   处理期间,它返回:
sql1822n     从数据源   "tkii"   接收到意外的错误代码   "-30081"。相关联的文本和标记为
"func="block_fetch"   msg="   sql30081n     检测到通信错误。正在使"。     sqlstate=560bd
sql1822n     从数据源   "tkii"   接收到意外的错误代码   "-30081"。相关联的文本和标记为   "func="block_fetch"   msg="   sql30081n     检测到通信错误"。
可是我在运行类似的查询sql语句时就没有问题:
select   f.agntnum,f.cnttype,f.campaign,f.cownnum,b.agntnum,b.cnttype,b.campaign,b.cownnumfrom   heyong.f_report1   f,system.ipe_chdrinfo   b
where   f.rldgacct   =   b.chdrnum   and   f.trandate   between     20030101   and   20071204;

请高手指教,谢谢
发表于:2007-12-07 15:32:301楼 得分:20
可能是update的数据量比较大,首先检验一下   update   语句是否有问题   ,取少部分数据进行测试,如果没有问题,建议取数范围缩小   分步执行
发表于:2007-12-07 15:35:022楼 得分:0
表heyong.f_report1共有20多万条数据,我把条件“where           f.trandate       between           20030101       and       20071204;”缩小到只有几百条数据,问题还是依旧。
我怀疑是不是数据库锁的问题?
该如何解决?
发表于:2007-12-07 16:54:363楼 得分:20
db2   force   application   all  
发表于:2007-12-07 17:10:214楼 得分:0
db2       force       application       all      
这个语句确实能解锁,可是update语句还是不能执行成功啊
发表于:2007-12-10 11:20:255楼 得分:10
那你就调整一下你的update的语句吧  
发表于:2007-12-10 14:25:556楼 得分:0
happyflog,update语句在我的发贴里   ,你觉得我应该怎么调整?谢谢
发表于:2007-12-11 16:03:077楼 得分:0
我知道出错原因了,因为表heyong.f_report1和表system.ipe_chdrinfo里的数据是多对一的关心,提示如下:
sql0811n     标量全查询、select   into   语句或   values   into   语句的结果有多行。

可是我现在必须要这样update表heyong.f_report1里的数据,我应该怎么写update   sql语句?


快速检索

最新资讯
热门点击