暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle-ORA-01460

原创 lizhao01 2022-07-06
2023

应用前端报错:
ORA-01460: unimplemented or unreasonable conversion requested

据排查分析是在处理clob类型时偶尔发生这个报错,再次运行便恢复正常,而且已经持续了一段时间。

2022-06-27 15:39:54,062 [DEBUG] com.mchange.v2.c3p0.impl.NewPooledConnection com.mchange.v2.c3p0.impl.NewPooledConnection@5f5d43a2 handling a throwable.
java.sql.SQLException: ORA-01460: unimplemented or unreasonable conversion requested

	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
	at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:205)
	at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1036)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1336)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3608)
	at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3709)
	at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4735)
	at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1090)
	at com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:3044)
	at com.xxxx.cop.db.DBHelper.execute(DBHelper.java:320)
	at com.xxxx.cop.xscript.scriptmodel.ProcedureHandler.execute(ProcedureHandler.java:91)
	at com.xxxx.cop.xscript.scriptmodel.XScriptModel.runModel(XScriptModel.java:35)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runModel(XScriptRuntime.java:223)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:177)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:198)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:198)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:198)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:198)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:198)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:198)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:198)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runArrows(XScriptRuntime.java:198)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.execute(XScriptRuntime.java:168)
	at com.xxxx.cop.xscript.runtime.XScriptRuntime.runScript(XScriptRuntime.java:86)
	at com.xxxx.cop.dispatcher.engine.flow.BaseService.runScript(BaseService.java:77)
	at com.xxxx.cop.dispatcher.engine.flow.BaseService.runScript(BaseService.java:61)
	at com.xxxx.cop.dispatcher.engine.flow.CreateProcess.createProcess(CreateProcess.java:95)
	at sun.reflect.GeneratedMethodAccessor1836.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.xxxx.cop.dispatcher.engine.execute.SunDSExecEngine.invoke(SunDSExecEngine.java:118)
	at com.xxxx.cop.dispatcher.engine.execute.SunDSExecEngine.execute(SunDSExecEngine.java:50)
	at sun.reflect.GeneratedMethodAccessor1829.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.xxxx.cop.util.reflect.ReflectHandler.invoke(ReflectHandler.java:224)
	at com.xxxx.cop.util.reflect.ReflectHandler.invoke(ReflectHandler.java:162)
	at com.xxxx.cop.communication.SocketMSGUtil.bussProcess(SocketMSGUtil.java:178)
	at com.xxxx.cop.communication.SocketMSGUtil.run(SocketMSGUtil.java:54)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
复制

根据业务反馈,该业务模块之前从未出现问题,就是在Oracle由10g升级到19c以后频繁发生告警,最终怀疑的ojdbc驱动版本太低带来的问题。我们的ojdbc版本为ojdbc14.jar 这个版本是9i、10g时候使用的,所以决定升级到对应的版本ojdbc8.jar,升级到目前为止不再报ORA-01460错误。
Oracle适配的驱动版本:

ojdbc.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论