oracle不支持的字符集orai18n.jar ZHS16GBK异常问题解决办法

甲戌神展子江
• 阅读 117

项目场景:
项目中有使用到oracle数据库来存在数据。

问题描述
在使用查询语句是,oracle会报错。

java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

原因分析:
经排查发现缺少oracle字符集的依赖包导致的。

解决方案:
如果oracle驱动包是database.jdbc,使用以下maven配置

<!-- Oracle 驱动包 -->
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>21.5.0.0</version>
    <scope>runtime</scope>
</dependency>
<!-- Additional library required to support Internationalization -->
<dependency>
    <groupId>com.oracle.database.nls</groupId>
    <artifactId>orai18n</artifactId>
    <version>21.5.0.0</version>
    <scope>provided</scope>
</dependency>

如果oracle驱动包是oracle.jdbc,使用以下maven配置

<!-- Oracle 驱动包 -->
<dependency>
    <groupId>com.oracle.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>
<!-- Additional library required to support Internationalization -->
<dependency>
    <groupId>cn.easyproject</groupId>
    <artifactId>orai18n</artifactId>
    <version>12.1.0.2.0</version>
</dependency>
点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
truncate table操作后数据恢复方法探究
概述:北京某国企客户Oracle11gR2数据库误truncatetableCM\_CHECK\_ITEM\_HIS,表数据丢失,业务查询到该表时报错,此时发现数据库的备份不能用,表数据无法查询。客户Oracle11gR2数据库误truncatetableCM\_CHECK\_ITEM\_HIS,表数据丢失,业务查询到该表时报错,此
Wesley13 Wesley13
3年前
RAC环境单实例启动数据库收到ORA
     在RAC环境中,如果你在没有启动节点的集群服务的情况下单实例启动数据库,将收到类似如下的报错:\oracle@rhel1u01\$sqlSQL\Plus:Release10.2.0.5.0ProductiononTueApr215:00:272013Copyright(
xxkfz xxkfz
4年前
SpringBoot整合Mybatis连接Oracle数据库
学习目标:<fontcolorredface"宋体"size3通过本篇文章掌握如何使用SpringBoot整合Mybatis来连接Oracle数据库进行基本的数据库操作。在之前的项目中,大多使用的是Mysql数据库,但在企业中使用的是Oracle数据库,下面就来简单的介绍下如何使用SpringBoot整合Mybatis的方式操作Oracle数据库。<
ORA-28002: the password will expire within 2 days
今天启动皕杰报表平台时候,发现tomcat报警告信息ORA28002:thepasswordwillexpirewithin2days,这实际上是oracle11g中默认在default概要文件中设置了"PASSWORDLIFETIME180”所导致,oracle用户的密码必须在180天内更改,或则启动数据库的时候会提示连接失败,oracle默
Wesley13 Wesley13
3年前
Oracle查询前几条数据的方法
在Oracle中实现selecttopN:由于Oracle不支持selecttop语句,所以在Oracle中经常是用orderby跟rownum的组合来实现selecttopn的查询。简单地说,实现方法如下所示:select列名1...列名nfrom(select列名1...列名n   f
Wesley13 Wesley13
3年前
oracle调用java代码
  内容主要包括:java开发,打包java程序成jar文件,上传jar文件到Oracle所在系统,Oracle导入jar文件中java类到数据库中,Oracle根据导入java类创建函数,Oracle操作函数。  用到的软件:Oracle数据库,Oracle数据库安装在Linux操作系统上;java用IDEA开发;上传jar文件用winSCP;操作Or
Wesley13 Wesley13
3年前
Oracle用户环境变量配置
要成功安装并使用Oracle数据库软件,必须在Oracle用户的.bash\_profile文件中设置ORACLE\_BASE、ORACLE\_HOME、ORACLE\_SID和PATH环境变量,其他的根据需要来设置。ORACLE\_HOME可以在安装前手动配置,另外,Oracle安装过程中会根据ORACLE\_BASE的值自动指定的ORACLE\_HOM
Stella981 Stella981
3年前
MAVEN不能导入Oracle驱动问题
  最近搭建项目的时候需要用到maven导入Oracle驱动,一般按照步骤导入之后便可以使用了,但是导入之后发现加载Oracle数据库驱动报错。  从网上找了一下原因是由于Oracle的授权问题,Maven3之后不提供Oracle驱动,网上一般是将Oracle的驱动添加到maven仓库,这边使用的是另外一种方式,将Oracle的驱动jar包放在项
Wesley13 Wesley13
3年前
Oracle 12c中文乱码,修改字符集的方法
在windows764位上安装Oracle12c没有设定字符集,采用的是操作系统默认字符集:WE8MSWIN1252,将字符集修改为:ZHS16GBK。由于过程不可逆,首先需要备份数据库。1.数据库全备2.查询当前字符集PARAMETER
Wesley13 Wesley13
3年前
oracle 19c 添加 scott用户与表
对于熟悉Oracle或者接触过Oracle的人,scott这个用户大家一定相当的熟悉。12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb。pdb中默认不包含scott用户。为了做数据泵的实验,需要一个测试用户,因此需要在pdb中添加scott用户。oracle12c自带了scott的脚本,$ORACLE\_HOME/
Wesley13 Wesley13
3年前
MySQL字符集
一、字符集和校验规则字符集是一套符号和编码,校验规则(collation)是在字符集内用于比较字符的一套规则,即字符集的排序规则。MySQL可以使用多种字符集和检验规则来组织字符。MySQL服务器可以支持多种字符集,在同一台服务器,同一个数据库,甚至同一个表的不同字段都可以指定使用不同的字符集,相比oracle等其他数据库管理系