一 、docker 安装oracle11g

docker run -d --privileged=true  -p 8888:1521  -v /home/work/oracle/:/u01/app/oracle/oradata - v /etc/localtime:/etc/localtime  --name oracle  alexeiled/docker-oracle-xe-11g

说明:

1. 简单的管理页面端口8080,没用,就不必暴露了

2.表空间文件挂载出来,但如果重新创建oracle容器,重新创建用户指定原表空间报错,暂未找到解决办法/可考虑非docker方式安装

二、表空间及用户创建

1.进入容器:docker exec  -it oracle  bash; 执行sqlplus 登录,默认账号密码:system/oracle

2.创建表空间(相等于数据库)

CREATE TABLESPACE procure LOGGING  DATAFILE '/u01/app/oracle/oradata/XE/procure.dbf'   SIZE 32M   AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED   EXTENT MANAGEMENT LOCAL;

3.创建用户及授权

create user procure identified by 密码 default tablespace procure;

GRANT CONNECT,RESOURCE,dba TO procure;

三、数据库连接

1.idea、Navicat工具

mysql5.7迁移oracle11g

2.Springboot配置。Mysql 改为oracle驱动,注意连接的验证sql改一下

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.4.0-atlassian-hosted</version>
</dependency>

mysql5.7迁移oracle11g

3.mybatisplus代码生成配置,需要显示设置DbType为oracle,注意数据表名使用大写,否则无法生存

mysql5.7迁移oracle11g

四、 建表语句及数据迁移

     mysql库转oracle库,需安装navicat premium版本,连接上mysql与oracle,选择顶部菜单栏“工具”->“数据同步” ,如果需要把表名字段名转为大写,可以勾选“选项”-转换对象名为大写。最好是勾选,否则后面改sql工作量更大。

mysql5.7迁移oracle11g

 

五,Oracle SQL初体验

 

1.Oracle特性

oracle默认大小写敏感,如果所有小写如果不加“”,默认都会自动转换为大写,包括所有curd sql语句,建表语句等。

 

2.查询示例

如emp的car表查询如果不使用大写的表名,字段名,查询语句应该是:

select "id","carId","carName"  from "car" 。

如果使用大写的表名,字段名,查询语句是:

SELECT ID, NAME, AGE FROM  A_USER; 或 select id, name, age from  a_user;

3.数据库规范

!!!如果使用小写表名,字段名:项目sql改动大,且不能使用mybatisplus(小写的表名无法生成代码;小写字段名则curd都会报错)

!!!推荐使用大写表名/字段名,下划线分割:这样sql改动小,主要要改动使用了mysql函数(oracle系统函数少,绝大多数与MySQL不同)的地方,最好不要使用自增ID

4.其它sql

当前数据库:select name from v$database;
版本:SELECT * FROM PRODUCT_COMPONENT_VERSION;

表空间列表:select tablespace_name from dba_tablespaces;

表空间详情:select * from dba_data_files


5.使用idea、Navicat执行oracle sql注意事项

Oracle事务不是自动提交,增删改操作需要手动执行commit ,否则其它会话连接查看不到该数据,并且如不手动commit,改动表结构会报错:资源正忙等异常

 

 

 

 

 

 

相关文章:

  • 2021-07-02
  • 2021-06-24
  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-06
  • 2021-12-21
  • 2021-07-22
  • 2021-08-23
  • 2022-12-23
  • 2021-09-12
相关资源
相似解决方案