将mysql转为oracle

mysql->oracle

前言

今天的任务是把用mysql数据库编写的程序转成oracle,这也是我第一次用oracle可谓是错误百出啊。下载oracle?NO在公司我们不需要本地下载oracle,(如果你是想自己学习当我没说,不魔法下载很慢,有时间我会写一篇系统性的文章写oracle的运用),当我下载完oracle本地数据库看收到怀疑的眼神我悟了,只需要下载一个可视化界面我们远程连接他的数据库就好了(这里我使用的是Oracle SQL Developer这里附上下载地址)。哈哈第一次嘛,难免难免,作为拥有==bug系统==的我习以为常,不会就查,再不会就问,没有解决不了的的问题!

1.oracle的maven

需要什么版本可以自己搜索

ojdbc8 pom依赖库下载

orai18n pom依赖库下载

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.11.0.0</version>
</dependency>

<!- 
	如果不加会报下面的错误
	Cause: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
-->
<dependency>
    <groupId>com.oracle.database.nls</groupId>
    <artifactId>orai18n</artifactId>
    <version>19.11.0.0</version>
</dependency>

2.oracle的application.yml配置

喜欢用application.properties的兄弟可以自己去转换

spring:
datasource:
# 请看3.2
# SID
#url: jdbc:oracle:thin:@127.0.0.1:6666:ocrl
# 服务名
url: jdbc:oracle:thin:@127.0.0.1:6666/ocrl
username: username			# 根据实际填写
password: password			# 根据实际填写
# 请看3.1
# 老ojdbc8以前
#    driver-class-name: oracle.jdbc.driver.OracleDriver
# 新
driver-class-name: oracle.jdbc.OracleDriver
max-idle: 10
max-wait: 10000
min-idle: 5
initial-size: 5

3.报错解决

3.1Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation.

这个是一个警告,不处理不影响运行,我大抵是有点代码洁癖

出现原因:这个警告是我在网上看oracle配置时按照广大网友的推荐cv,成功警告。主要原因是ojdbc的版本问题

# 老版本使用ojdbc8以下,当然我没咋尝试有小伙伴感兴趣可以出个各个版本测试,一点要记得@我
driver-class-name: oracle.jdbc.driver.OracleDriver
# 新版本使用
driver-class-name: oracle.jdbc.OracleDriver

3.2HikariPool-1 - Exception during pool initialization.并且java.sql.SQLException: Listener refused the connection with the following error:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

出现原因:yml的url配置有问题

可以打开你的数据库属性看看你的连接方式是SID还是用服务名

#SID方式
url: jdbc:oracle:thin:@127.0.0.1:6666:ocrl
#服务名方式
url: jdbc:oracle:thin:@127.0.0.1:6666/ocrl

3.3Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束

这个错误出现在sql语句中,可以查看一下你的mapper中的sql语句最后是不是加了分号,在oracle中测试加分号的也能运行但是写在代码中就不能运行了,去掉即可

3.4Cause: java.sql.SQLException: 无效的列类型: 1111,cause by:{}

插入时由于我加了两个字段导致,前端少传导致,解决方法①修改前端,②通过if判断是否为空,③如果确定要插入空数据,需要在启动类中加入下面的内容详情可见这篇文章

/*************对于是ORACLE 数据库的 mybatis必须增加如下的配置*********Start */
@Bean
public ConfigurationCustomizer configurationCustomizer() {
    return new MybatisPlusCustomizers();
}

class MybatisPlusCustomizers implements ConfigurationCustomizer {
    @Override
    public void customize(org.apache.ibatis.session.Configuration configuration) {
        configuration.setJdbcTypeForNull(JdbcType.NULL);
    }
}
/*************对于是ORACLE 数据库的 mybatis必须增加如下的配置*********End */

3.5Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

这个问题出现在字段属性上,在mysql中对于特殊的关键字我们会加一个反单引号==`==进行区分,但是他在oracle中没有这种操作,可以在oracle中运行一下在放到mapper.xml

3.6Cause: java.sql.SQLSyntaxErrorException: ORA-01745: 无效的主机/绑定变量名

我是在插入语句出现的这个,最后排查发现在value中少写了一个,逗号

相关推荐

  1. mysql转为oracle

    2024-04-29 00:02:02       14 阅读
  2. Mysqldatetime数据转为Data/Char

    2024-04-29 00:02:02       19 阅读
  3. iOSframework转为xcframework

    2024-04-29 00:02:02       36 阅读
  4. MysqlOracle区分大小写?

    2024-04-29 00:02:02       40 阅读
  5. MySQLOracle笔记

    2024-04-29 00:02:02       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 00:02:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 00:02:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 00:02:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 00:02:02       20 阅读

热门阅读

  1. LeetCode题练习与总结:组合-77

    2024-04-29 00:02:02       12 阅读
  2. new qemu QEMU_OPTION_d

    2024-04-29 00:02:02       14 阅读
  3. 笨蛋学C++【C++基础第八弹】

    2024-04-29 00:02:02       15 阅读
  4. C语言基础—多线程基础

    2024-04-29 00:02:02       12 阅读
  5. YOLOV5 TensorRT部署 BatchedNMS(转换engine模型)(上)

    2024-04-29 00:02:02       11 阅读
  6. 在Docker中为Nginx容器添加多端口映射的详细指南

    2024-04-29 00:02:02       9 阅读
  7. 描述一下PHP中的MVC设计模式

    2024-04-29 00:02:02       10 阅读
  8. Linux系统使用命令来查看本地端口的使用情况

    2024-04-29 00:02:02       13 阅读
  9. Linux Makefile编写之可执行程序

    2024-04-29 00:02:02       47 阅读
  10. 先出发再思考怎么解决问题

    2024-04-29 00:02:02       37 阅读