您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle迁移到DB2(工程部署)问题记述

2024/3/29 1:29:45发布31次查看
一直使用的是oracle,最近的工作是进行系统部署发布。将原使用oracle的数据库迁移到db2数据库上,过程中遇到了一些问题,觉得有必
一直使用的是oracle,最近的工作是进行系统部署发布。将原使用oracle的数据库迁移到db2数据库上,过程中遇到了一些问题,觉得有必要记述一下供大家分享。让后来者以解惑,让过来者而温故。由于以前未接触过db2,有什么不正确的地方还请见谅,谢谢!这次工作也萌发了我要系统认真的学习一下db2的欲望,o(∩_∩)o哈哈~
以下是记述的db2抛出的问题:
1.com.ibm.db2.jdbc.db2exception:[ibm][cli driver][db2/sun64]sql0401n  运算=的操作数的数据类型不兼容。 sqlstate=42818
记述:在sql文中有的条件直接用 字段 = #参数# 的形式,当传入的参数为null的时候,就显出了上面这个问题。在db2中,当确定一个字段值是null且要作为条件的时候,请使用 “is” 而不是“=”。那么当某个字段必须要用“=”,而是否要作为条件则根据参数的值进行判断的话,则可以在程序中用if或者用ibatis的时候在sql的配置文件中用进行判断。
而这种情况,也可能会报:程序类型超出范围。这样的错误!
2.com.ibatis.common.jdbc.exception.nestedsqlexception:  
--- the error occurred while applying a parameter map. 
--- check the managelog.querywarnmoduleolapfile-inlineparametermap. 
--- check the statement (query failed). 
--- cause: com.ibm.db2.jdbc.db2exception: [ibm][cli driver] cli0109e  字符串数据右截断。 sqlstate=22001
caused by: com.ibm.db2.jdbc.db2exception: [ibm][cli driver] cli0109e  字符串数据右截断。 sqlstate=22001
 at com.ibatis.sqlmap.engine.mapping.statement.generalstatement.executequerywithcallback(generalstatement.java:193)
 at com.ibatis.sqlmap.engine.mapping.statement.generalstatement.executequeryforlist(generalstatement.java:125)
 at com.ibatis.sqlmap.engine.impl.sqlmapexecutordelegate.queryforlist(sqlmapexecutordelegate.java:610)
 at com.ibatis.sqlmap.engine.impl.sqlmapexecutordelegate.queryforlist(sqlmapexecutordelegate.java:584)
 at com.ibatis.sqlmap.engine.impl.sqlmapsessionimpl.queryforlist(sqlmapsessionimpl.java:101)
 at com.ibatis.sqlmap.engine.impl.sqlmapclientimpl.queryforlist(sqlmapclientimpl.java:78)
 at com.linkage.bi.logmonitor.module.logholdgraphmodule.queryetllog(logholdgraphmodule.java:66)
 at com.linkage.bi.logmonitor.action.holographaction.view(holographaction.java:76)
 at sun.reflect.nativemethodaccessorimpl.invoke0(native method)
 at sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39)
 at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25)
 at java.lang.reflect.method.invoke(method.java:597)
 at org.apache.struts.actions.dispatchaction.dispatchmethod(dispatchaction.java:280)
 at org.apache.struts.actions.dispatchaction.execute(dispatchaction.java:216)
 at org.apache.struts.action.requestprocessor.processactionperform(requestprocessor.java:484)
 at com.linkage.bace.core.act.mcrequestprocessor.process(mcrequestprocessor.java:94)
 at com.linkage.bace.core.act.mcactionservlet.process(mcactionservlet.java:41)
 at org.apache.struts.action.actionservlet.dopost(actionservlet.java:525)
 at javax.servlet.http.httpservlet.service(httpservlet.java:637)
 at javax.servlet.http.httpservlet.service(httpservlet.java:717)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at com.linkage.bi.util.systeminfofilter.dofilter(systeminfofilter.java:72)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at com.linkage.bi.util.systeminfofilter.dofilter(systeminfofilter.java:94)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233)
 at org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191)
 at org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:128)
 at org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:102)
 at org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109)
 at org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:293)
 at org.apache.coyote.http11.http11processor.process(http11processor.java:849)
 at org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:583)
 at org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:454)
 at java.lang.thread.run(thread.java:619)
记述:db2中字符串右截断,即传入sql文中的参数的长度大于数据表字段的设计长度。所谓的设计长度,即字段创建时定义的长度。出现上面这个错误,要么检查传入的参数是否正确,要么就是修改表字段的长度。
3. [级别: error]  [类名]: com.linkage.bi.util.pagelist [方法名]: com.linkage.bi.util.pagelist.(pagelist.java:277)
 [输出信息]: com.ibatis.common.jdbc.exception.nestedsqlexception:  
--- the error occurred while applying a parameter map. 
--- check the loggtal.queryloadfilecount-inlineparametermap. 
--- check the statement (query failed). 
--- cause: com.ibm.db2.jdbc.db2exception: [ibm][cli driver][db2/sun64] sql0203n  对列 only_unit_code 的引用是模糊的。  sqlstate=42702
caused by: com.ibm.db2.jdbc.db2exception: [ibm][cli driver][db2/sun64] sql0203n  对列 only_unit_code 的引用是模糊的。  sqlstate=42702
记述:这个问题是在sql中使用的字段不明确。即sql文中时候多表的时候,每个表都有别名,而在使用字段的时候没有明确的标注是哪个别名(表对象)中的字段。这个问题就要细心的检查了。o(∩_∩)o哈哈~
4.com.ibatis.common.jdbc.exception.nestedsqlexception:  
--- the error occurred while applying a parameter map. 
--- check the runstate.queryrunstatestatinfo-inlineparametermap. 
--- check the statement (query failed). 
--- cause: com.ibm.db2.jdbc.db2exception: [ibm][cli driver][db2/sun64] sql0206n  t1.system_code 在使用它的上下文中无效。  sqlstate=42703
caused by: com.ibm.db2.jdbc.db2exception: [ibm][cli driver][db2/sun64] sql0206n  t1.system_code 在使用它的上下文中无效。  sqlstate=42703
 at com.ibatis.sqlmap.engine.mapping.statement.generalstatement.executequerywithcallback(generalstatement.java:193)
 at com.ibatis.sqlmap.engine.mapping.statement.generalstatement.executequeryforlist(generalstatement.java:125)
 at com.ibatis.sqlmap.engine.impl.sqlmapexecutordelegate.queryforlist(sqlmapexecutordelegate.java:610)
 at com.ibatis.sqlmap.engine.impl.sqlmapexecutordelegate.queryforlist(sqlmapexecutordelegate.java:584)
 at com.ibatis.sqlmap.engine.impl.sqlmapsessionimpl.queryforlist(sqlmapsessionimpl.java:101)
 at com.ibatis.sqlmap.engine.impl.sqlmapclientimpl.queryforlist(sqlmapclientimpl.java:78)
 at com.linkage.bi.dq.module.runstatemodule.queryrunstatestatinfo(runstatemodule.java:51)
 at com.linkage.bi.logmonitor.action.indexpageshowaction.execute(indexpageshowaction.java:65)
 at org.apache.struts.action.requestprocessor.processactionperform(requestprocessor.java:484)
 at com.linkage.bace.core.act.mcrequestprocessor.process(mcrequestprocessor.java:94)
 at com.linkage.bace.core.act.mcactionservlet.process(mcactionservlet.java:41)
 at org.apache.struts.action.actionservlet.doget(actionservlet.java:507)
 at javax.servlet.http.httpservlet.service(httpservlet.java:617)
 at javax.servlet.http.httpservlet.service(httpservlet.java:717)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at com.linkage.bi.util.systeminfofilter.dofilter(systeminfofilter.java:72)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at com.linkage.bi.util.systeminfofilter.dofilter(systeminfofilter.java:94)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233)
 at org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191)
 at org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:128)
 at org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:102)
 at org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109)
 at org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:293)
 at org.apache.coyote.http11.http11processor.process(http11processor.java:849)
 at org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:583)
 at org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:454)
 at java.lang.thread.run(thread.java:619)
记述:这个问题即使用的字段在所在的sql文中使用的数据表没有被定义。这时候要么增加相应的字段,,要么删除该字段在sql文中的使用,当然要就系统逻辑的整体考虑。
5.警告:java.io.charconversionexception:eof
记述:这个是说在打开某个页面的url中存在“%”。最后在url外加了一个处理的方法 encodeuricomponent()这个是在脚本中,在java中另行处理了,嘿嘿!
6.[级别: error]  [类名]: com.linkage.bi.dq.module.interfacerptmodule [方法名]: com.linkage.bi.dq.module.interfacerptmodule.queryreport(interfacerptmodule.java:365)
 [输出信息]: com.ibatis.common.jdbc.exception.nestedsqlexception:  
--- the error occurred in config/ibatis/dq/interfacereport.xml. 
--- the error occurred while applying a result map. 
--- check the interfacereport.queryreportcodedb2-autoresultmap. 
--- the error happened while setting a property on the result object. 
--- cause: net.sf.cglib.beans.bulkbeanexception
caused by: net.sf.cglib.beans.bulkbeanexception
com.ibatis.common.jdbc.exception.nestedsqlexception:  
--- the error occurred in config/ibatis/dq/interfacereport.xml. 
--- the error occurred while applying a result map. 
--- check the interfacereport.queryreportcodedb2-autoresultmap. 
--- the error happened while setting a property on the result object. 
--- cause: net.sf.cglib.beans.bulkbeanexception
caused by: net.sf.cglib.beans.bulkbeanexception
 at com.ibatis.sqlmap.engine.mapping.statement.generalstatement.executequerywithcallback(generalstatement.java:196)
 at com.ibatis.sqlmap.engine.mapping.statement.generalstatement.executequeryforobject(generalstatement.java:105)
 at com.ibatis.sqlmap.engine.impl.sqlmapexecutordelegate.queryforobject(sqlmapexecutordelegate.java:561)
 at com.ibatis.sqlmap.engine.impl.sqlmapexecutordelegate.queryforobject(sqlmapexecutordelegate.java:536)
 at com.ibatis.sqlmap.engine.impl.sqlmapsessionimpl.queryforobject(sqlmapsessionimpl.java:93)
 at com.ibatis.sqlmap.engine.impl.sqlmapclientimpl.queryforobject(sqlmapclientimpl.java:70)
 at com.linkage.bi.dq.module.interfacerptmodule.queryreport(interfacerptmodule.java:358)
 at com.linkage.bi.dq.action.interfacerptdealaction.execute(interfacerptdealaction.java:151)
 at org.apache.struts.action.requestprocessor.processactionperform(requestprocessor.java:484)
 at com.linkage.bace.core.act.mcrequestprocessor.process(mcrequestprocessor.java:94)
 at com.linkage.bace.core.act.mcactionservlet.process(mcactionservlet.java:41)
 at org.apache.struts.action.actionservlet.doget(actionservlet.java:507)
 at javax.servlet.http.httpservlet.service(httpservlet.java:617)
 at javax.servlet.http.httpservlet.service(httpservlet.java:717)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at com.linkage.bi.util.systeminfofilter.dofilter(systeminfofilter.java:72)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at com.linkage.bi.util.systeminfofilter.dofilter(systeminfofilter.java:94)
 at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235)
 at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206)
 at org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233)
 at org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191)
 at org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:128)
 at org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:102)
 at org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109)
 at org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:293)
 at org.apache.coyote.http11.http11processor.process(http11processor.java:849)
 at org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:583)
 at org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:454)
 at java.lang.thread.run(thread.java:619)
caused by: net.sf.cglib.beans.bulkbeanexception
 at com.linkage.bi.dq.bean.interfacerptbean$$bulkbeanbycglib$$4c5560ff.setpropertyvalues()
 at com.ibatis.sqlmap.engine.accessplan.enhancedpropertyaccessplan.setproperties(enhancedpropertyaccessplan.java:33)
 at com.ibatis.sqlmap.engine.exchange.javabeandataexchange.setdata(javabeandataexchange.java:112)
 at com.ibatis.sqlmap.engine.mapping.result.basicresultmap.setresultobjectvalues(basicresultmap.java:346)
 at com.ibatis.sqlmap.engine.mapping.statement.rowhandlercallback.handleresultobject(rowhandlercallback.java:63)
 at com.ibatis.sqlmap.engine.execution.sqlexecutor.handleresults(sqlexecutor.java:395)
 at com.ibatis.sqlmap.engine.execution.sqlexecutor.executequery(sqlexecutor.java:185)
 at com.ibatis.sqlmap.engine.mapping.statement.generalstatement.sqlexecutequery(generalstatement.java:213)
 at com.ibatis.sqlmap.engine.mapping.statement.generalstatement.executequerywithcallback(generalstatement.java:181)
 ... 31 more
caused by: java.lang.nullpointerexception
 ... 40 more
记述:错误的大致意思知道了,还在系统中排查具体的错误点。。。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product