网站首页 > 技术文章 正文
1、问题说明
改造以前的一个shiro项目,以前数据库用的mysql,要更改成oracle,记录下,希望能帮到有需要的朋友。
2、解决方案
因为数据库中表结构,也就6个张表(5个权限表+一个日志表),原方案是想根据数据库字段,转到pownerdesigner中,然后再转出来,后来发现太麻烦放弃了。
2.1 使用navicat premium
(1)通过navicat premimum 连接oracle数据库。
(2) 选中数据库,右键选中转储SQL文件,然后选择仅结构,就能导出oracle建表sql了。
2.2 oracle sql 与mysql的不同点
(1)cancat函数,连接字符串。
mysql中可以连接多个字符串;oracle只能连接两个,需要连接多个的话,oracle中需要做嵌套。
mysql中:
SELECT count(0)
FROM sys_user su_a
LEFT JOIN sys_user su_b
ON su_b.id = su_a.create_id
LEFT JOIN sys_user su_c
ON su_c.id = su_a.update_id
WHERE su_a.deleted = 1 AND su_a.username LIKE concat('%', '老王', '%');
在oracle中执行
报错信息:
网上说明:
软件老王真实使用情况,oracle中多个concat嵌套:
mybatis中使用:
(2)oracle中不能执行insert values插入多条记录。
(3)通过navivat或者pownerdesiner导出的oracle建表语句,需要把双引号或者单引号替换为空,否则会出现大小写问题,导致一些不必要的问题。
(4)给oracle中表字段设置默认值
导出的后默认值可能会没了,假如没有了,需要设置下。
如下:alter table 表名称 modify 字段名 default 具体值;
例如:alter table sys_user modify status default 1;
(5)老shiro项目中,没有用到自增主键,用的逻辑主键,所以没有主键问题,假如用到mysql项目中用到自增主键的朋友,还是有些问题的,mysql可以直接设置自增主键,oracle中需要新建sequence。
更多信息请关注@软件老王,关注不迷路,软件老王和他的IT朋友们,分享一些他们的技术见解和生活故事。
猜你喜欢
- 2024-10-16 oracle数据库得备份方式 oracle数据库三种备份方式
- 2024-10-16 SmartSQL一款方便快捷的数据库文档查询、导出工具
- 2024-10-16 从零开始学习Oracle之数据备份与还原
- 2024-10-16 Oracle11g中使用expdp导sys用户下的表时报错ORA-39166/ORA-31655
- 2024-10-16 Oracle SQLPlus导出数据到csv文件
- 2024-10-16 Oracle 转换成 MySQL oracle转mysql sql语句
- 2024-10-16 ORACLE 体系 - 14 oracle体系结构思维导图
- 2024-10-16 记一次生产数据库Oracle数据泵导出报ORA-31617错误的解决过程
- 2024-10-16 超级好用的数据库表结构导出工具 数据库导出表结构语句
- 2024-10-16 记Oracle中快速获取表及其各个字段注释的方法
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)