背景
由于旧系统是python编写,而我们这边没有人之前用过python,本来是打算学学python然后把这个案子盘过来的,但由于时间问题,而且后续可能没人维护问题,就还是把这个系统改用C#重写了,逻辑大致还是一样的,但表结构就不是了,且我们用的数据库也不一样。现旧系统要停止使用,所以需将旧系统数据导入新系统。但新系统数据库受管控,不让连,只有服务器可以连接。于是就让那边用Excel按我们的格式导出,然后我们再导入。好像其实是可以使用数据迁移工具的,比如说Kettle或者pentaho的,但我没怎么用过,而且这个系统我写了一部分,后面出差,交接给别人,兜兜转转,还是要写,还要导数据。
原材料
- Excel数据
- Oracle 12数据库
所用工具
所遇问题
- 生成唯一编号=》Excel准备已解决
- 时间格式=》用Navicat可选择导入的时间格式【1.在Excel内设定 2.更改你的本地的SQL工具的时间格式】
- 导出insert SQL乱码=》导出Excel
- 导出时间格式不对=》更改你的本地的SQL工具的时间格式【sqldeveloper程式=》工具=》偏好设定=》资料库=》NLS=》改成你想要的 YYYY/MM/DD HH24:MI:SS 】
Excel準備
- 导入唯一编号,可在Excel内生成(主要用的)
- Ctrl+D 一鍵填充【相當於 複製,相當於Ctrl+V】
- 先函数(=row(A1)+100)=》:C100 =》Enter =》Ctrl+D 【相當於 自增】
- Ctrl+1 =》選擇【自定】=》修改【類型】的數據 為數據添加前綴(XYZ@)後綴(#123)(类型是數字的時候,前後綴不好使,上面都是通用格式)
- Excel快捷鍵
- Alt+Q 激活【格式】選項
- Ctrl+Shift+↓ 選中一列所有數據
- Ctrl+Enter 用 函數 填充選中列的數據
- Ctrl+D 一鍵填充【相當於 複製,相當於Ctrl+V】
- Ctrl+1 快捷打開【存儲格格式】
- Ctrl+1 快捷打開【存儲格格式】=》選擇【自定】=》修改【類型】的數據 為數據添加前綴(XYZ@)後綴(#123)(类型是數字的時候,前後綴不好使)
【不好使,可新增一行,用函數【=F5&"MMM"】(F5是有數字的那一行)】就可以完美添加數字和其他字符 - Alt+W+F+R 冻结首行
软件
我挺想用Toad,可惜没版权,之前用的很顺,现在严管。
- 导入时间格式报错,可用Navicat(推荐,对时间格式友好,第一次我导的时候,点了多次开始,导致数据重复)
- 导入时可视化数据,可用sqldeveloper
- 查询已导入的数据,建议用DBeaver(表名快速出来)
结果
最终完成,但是发现自己的Excel技巧真的渣到爆,多亏了广大网友的知识分享,也感谢这些平台为我们提供了知识的海洋。