java jdbc->mycat->oracle SqlException异常中文信息乱码解决

mycat字符集gbk

oracle字符集gbk

原jdbc连接串:

base.jdbc.url=jdbc:mysql://127.0.0.1:3306/XXX?useUnicode=true&characterEncoding=gbk

错误信息:

A.D_OUTPUTDATE = 0 THEN ' ' ELSE TO_CHAR(A.D_OUTPUTDATE) END) D_OUTPUTDATE     , NVL(B.C_CUSTNAME, ' ') C_CUSTNAME     , NVL(B.C_IDENTITYPE, ' ') C_IDENTITYPE     , NVL(B.C_IDENTITYNO, ' ') C_IDENTITYNO     , (CASE WHEN A.D_REQOUTPUTDATE = 0 THEN ' ' ELSE TO_CHAR(A.D_REQOUTPUTDATE) END) D_REQOUTPUTDATE     , A.C_FORCEREDEMPTIONTYPE     , A.C_MEMO     , A.F_REQRDMBALANCE     , A.F_PROTECTBALANCE    FROM      ta_tconfirm_his A        LEFT JOIN ta_taccoinfo B ON  A.C_FUNDACCO = B.C_FUNDACCO AND A.C_TENANTID  = B.C_TENANTID      LEFT JOIN ta_tagencyinfo C ON A.C_AGENCYNO = C.C_AGENCYNO AND A.C_TENANTID = C.C_TENANTID      LEFT JOIN ta_tbusinflag D ON A.C_BUSINFLAG = D.C_BUSINFLAG AND A.C_TENANTID = D.C_TENANTID        LEFT JOIN ta_terrormess E ON A.C_CAUSE = E.C_CAUSE AND A.C_TENANTID = E.C_TENANTID        LEFT JOIN ta_tfundinfo F ON A.C_FUNDCODE = F.C_FUNDCODE AND A.C_TENANTID = F.C_TENANTID        LEFT JOIN ta_tnetinfo H ON A.C_NETNO = H.C_NETNO AND A.C_AGENCYNO=H.C_AGENCYNO AND A.C_TENANTID = H.C_TENANTID         WHERE A.C_TENANTID = ?                     AND A.c_tacode = ?                                                                            AND A.D_CDATE  >= ?                                        AND A.D_CDATE  <= ?                                                                AND A.C_FUNDCODE IN (     SELECT fundcode FROM role_fundcode WHERE role_id IN     (      ?     )     AND fundcode IN(SELECT c_fundcode FROM ta_tfundinfo)     UNION ALL     SELECT ' ' AS fundcode FROM dual     UNION ALL      SELECT '*' AS fundcode FROM dual    )          ) C
### Cause: java.sql.SQLException: ORA-00942: ????????????

; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1105]; ORA-00942: ????????????
; nested exception is java.sql.SQLException: ORA-00942: ????????????

    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) ~[spring-jdbc-3.2.14.RELEASE.jar:3.2.14.RELEASE]
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) ~[spring-jdbc-3.2.14.RELEASE.jar:3.2.14.RELEASE]
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) ~[spring-jdbc-3.2.14.RELEASE.jar:3.2.14.RELEASE]
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:74) ~[mybatis-spring-1.2.3.jar:1.2.3]
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:399) ~[mybatis-spring-1.2.3.jar:1.2.3]
    at com.sun.proxy.$Proxy40.selectOne(Unknown Source) ~[?:?]
    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:165) ~[mybatis-spring-1.2.3.jar:1.2.3]
    at net.hs.cw.bomp.engine.service.JdbcServiceEngine.selectPageCount(JdbcServiceEngine.java:498) ~[bomp-runtime-1.0.0-SNAPSHOT.jar:?]
    at net.hs.cw.bomp.engine.service.JdbcServiceEngine.callQueryService(JdbcServiceEngine.java:460) ~[bomp-runtime-1.0.0-SNAPSHOT.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_45]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_45]

mycat中不是乱码,如下:

06/26 14:45:19.609   WARN [BusinessExecutor1] (MultiNodeHandler.java:126) -error response from JDBCConnection [id=68,autocommit=true,pool=org.opencloudb.jdbc.JDBCDatasource@1dbc0e73, schema=hs_tatrade2, dbType=ORACLE, oldSchema=hs_tatrade2, packetId=-55, txIsolation=0, running=false, borrowed=false, host=null, port=-1, con=oracle.jdbc.driver.T4CConnection@12645708, respHandler=null, attachement=null, headerOutputed=false, modifiedSQLExecuted=false, startTime=1529975130206, lastTime=1529995519607, isSpark=false, processor=org.opencloudb.net.NIOProcessor@2558af45] err ORA-00942: 表或视图不存在

增加characterSetResults=gbk,如下:

base.jdbc.url=jdbc:mysql://127.0.0.1:3306/bomp_test?useUnicode=true&characterEncoding=gbk&characterSetResults=gbk

异常信息如下:

### Cause: java.sql.SQLException: ORA-00942: 表或视图不存在

; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1105]; ORA-00942: 表或视图不存在
; nested exception is java.sql.SQLException: ORA-00942: 表或视图不存在

    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) ~[spring-jdbc-3.2.14.RELEASE.jar:3.2.14.RELEASE]
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) ~[spring-jdbc-3.2.14.RELEASE.jar:3.2.14.RELEASE]
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) ~[spring-jdbc-3.2.14.RELEASE.jar:3.2.14.RELEASE]
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:74) ~[mybatis-spring-1.2.3.jar:1.2.3]
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:399) ~[mybatis-spring-1.2.3.jar:1.2.3]
    at com.sun.proxy.$Proxy40.selectOne(Unknown Source) ~[?:?]

问题解决,mycat->oracle,比较尴尬,准备sharding-jdbc->oracle。

参考:

https://blog.csdn.net/zyf814/article/details/17021949

posted @ 2018-06-26 16:13  zhjh256  阅读(1169)  评论(0编辑  收藏  举报