Select ttt.* From( SELECT TLLoc.LocationID, Substr(TLLat.LatticeListCode||'000000',1,6) as latticeCode , Tlloc.Locposition FROM Tab_List_Location TLLoc LEFT JOIN Tab_List_Lattice TLLat ON TLLoc.LatticeListID = TLLAT.LATTICELISTID LEFT JOIN Tab_base_lattice TBL ON TBL.LatticeBaseID = TLLat.LatticeBaseID LEFT JOIN tab_lattice_hu TLH ON TLH.LatticeTypeID = TBL.LatticeBaseID LEFT JOIN Tab_LaneWay_Row TLR ON TLR.LatRow = TLLoc.LatRow Where TLLat.WareHouseId=28 AND TLLat.Accessstatus IN (212,219) AND TLLat.Physicsstatus =205 AND TLLat.Splitstatus =1 AND TBL.High>=1250 AND (Select Value From tab_Base_Code Where CodeID=TLH.HuSizeType) = 1 AND TLR.status = 222 AND TLLoc.lockstatus = 148 AND TLLoc.availablestatus = 145 AND TLLoc.businessstatus = 149 AND TLLoc.occupancystatus = 151 AND TLLoc.DUBIOUSSTATUS = 1077 ORDER BY Fun_GetLaneWayOrderBySubItemID ('40000,0,0,0,46666,0,13333,',TLR.LaneWay),Fun_GetABCOrderBy (8325, TLLat.MovingRate),TBL.High,TLLat.latlevel,TLLat.latcolumn, TLLat.latrow ) ttt Where Rownum<=100之前 这条语句一直都没有问题,但前几天将系统有问题(可能有病毒),重新安装了oracle 并调整oracle 内存配置(增大了一些参数) 。
之后 上面这语句在一定的条件下执行就会报 ORA-03113: 通信通道的文件结束。
也就是说语句的查询条件变化了也会查询成功,比如将最后rowrum<=100改成<=90已下就不会有问题,在或者在最后增加一个Group by LocationID,latticeCode ,Locposition 等等 都会执行成功。我想像高手们请教为什么 条件变化 出现ORA-03113的错误 ,是oracle 哪个参数的尺寸设置得太小了么?因为对oracle深层的东西知道太少,所以很困惑!如有答案不胜感激! 

解决方案 »

  1.   

    ORA-03113 end-of-file on communication channelCause: An unexpected end-of-file was processed on the communication channel. The problem could not be handled by the Net8 two-task software. This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally, or if there is a physical failure of the interprocess communication vehicle, that is, the network or server machine went down.In addition, this message could occur when any of the following statements/commands have been issued:ALTER SYSTEM KILL SESSION ... IMMEDIATE
    ALTER SYSTEM DISCONNECT SESSION ... IMMEDIATE
    SHUTDOWN ABORT/IMMEDIATE/TRANSACTIONAL
    Action: If this message occurs during a connection attempt, check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server. If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time. Existence of a trace file may suggest an Oracle internal error that requires the assistance of Oracle Support Services
      

  2.   


    感谢各位,不过 可能不是网络问题,我在本机Sqlplus 运行也是一样的结果。不是偶然现象,rownum<=100的时候每次都不成功。加了group by现在就没有任何问题了。很神奇!!