数据库(跨数据库,服务器数据迁移)
注意点:
1、由于mysql的date类型只支持存储日期,不能存储时间,navicat在转换时,如果是oracle的date,会自动转成mysql的date,这样会导致mysql的精度不够而报错,所以要提前将oracle的date类型转换成timestamp类型。如果表的数量比较多,手工改太麻烦了,这里写了个存储过程,自动将oracle中所有表中的DATE类型转换成TIMESTAMP类型:
- create or replace procedure convert_date_to_timestamp
- /**************************
- function: 将数据库中所有的表中含DATE类型的字段改为TIMESTAMP类型;
- 需要建立下列类型表:
- create table type_table_info (
- table_name varchar2(30),
- column_name varchar2(30),
- data_type varchar2(100)
- )
- ***************************/
- is
- v_query_base_sql varchar2(100) := 'SELECT table_name, column_name, data_type FROM all_tab_cols WHERE table_name = ''';
- v_query_table_sql varchar2(150);
- v_alter_sql varchar2(100);
- type table_type is table of type_table_info%rowtype;
- table_array table_type;
- begin
- for c_tabs in (
- select table_name from user_tables where table_name <> 'type_table_info'
- )
- loop
- v_query_table_sql := v_query_base_sql || c_tabs.table_name || '''';
- execute immediate v_query_table_sql bulk collect into table_array;
- for i in table_array.first .. table_array.last
- loop
- --DBMS_OUTPUT.put_line(table_array(i).column_name || ':' || table_array(i).data_type);
- if table_array(i).data_type = 'DATE' then
- v_alter_sql := 'alter table ' || table_array(i).table_name || ' modify ' || table_array(i).column_name || ' timestamp';
- DBMS_OUTPUT.put_line(table_array(i).column_name || ': ' || v_alter_sql);
- execute immediate v_alter_sql;
- end if;
- end loop;
- end loop;
- end convert_date_to_timestamp;
我这边是通过修改mysql字符集解决的,改为utf8
- 转换步骤:
- 附
2、mysql的使用函数时,函数名和括号之间不能有空格,>= 之间也不能有空格(如,> =会报错);
3、mysql视图中不支持子查询,必须使用视图嵌套;
4、mysql中的系统函数与oracle中的系统函数有很多差异,这里需要特别注意下。
另一种方法:
1.从源数据库导出数据:
语法:
exp user1/pwd1@test1 file='E:test.dmp';
- 1
exp tianzhi_smart/tianzhi_smart@192.168.56.60:1521/orcl file='E:\tianzhi_smart.dmp';
2.向目标数据库导入数据:
语法:
imp user2/pwd@test2 file='E:test.dmp' full=y;
- 1
imp tianzhi_smart/tianzhi_smart@192.168.10.129:1521/orcl file='E:\tianzhi_smart.dmp' full=y;
【数据库(跨数据库,服务器数据迁移)】转载于:https://www.cnblogs.com/zxm2016-6/p/8081001.html
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《跨界歌手》:亲情永远比爱情更有泪点
- 也许第一步很难,但跨过去就好了
- 探索免费开源服务器tomcat的魅力
- 数据库设计与优化
- GIS跨界融合赋能多领域技术升级,江淮大地新应用成果喜人
- 数据库总结语句
- MySql数据库备份与恢复
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- 数据库|SQL行转列方式优化查询性能实践