oracle迁移postgres之-Ora2Pg
yum install perl-DBI perl-DBD-Pg perl-ExtUtils-MakeMaker gcc wget http://search.cpan.org/CPAN/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.74.tar.gz tar -zxvf DBD-Oracle-1.74.tar.gz cd DBD-Oracle-1.74 source /home/oracle/.bash_profile perl Makefile.PL -l make make install
2.安装 ora2pg包
unzip ora2pg-17.4.zip cd ora2pg-17.4 perl Makefile.PL make make install /usr/local/bin/ora2pg -v --默认安装在/usr/local/bin/目录下;版本为v17.4。 Ora2Pg v17.4
/etc/ora2pg/ora2pg.conf ORACLE_HOME /u01/app/oracle #This directive is used to set the data source name in the form standard DBI DSN ORACLE_DSN dbi:Oracle:ora229 ORACLE_USER lottu ORACLE_PWD li0924 LOGFILE /tmp/Ora2Pg.log SCHEMA LOTTU TYPE TABLE INSERT ALLOW ORATAB OUTPUT lottu01.sql [root@sdserver40_222 ~]# ora2pg -c /etc/ora2pg/ora2pg.conf [========================>] 1/1 tables (100.0%) end of scanning. [> ] 0/1 tables (0.0%) end of scanning. [========================>] 1/1 tables (100.0%) end of table export. [====> ] 1/6 rows (16.7%) Table ORATAB (1 recs/sec) [========================>] 6/6 rows (100.0%) on total estimated data (1 sec., avg: 6 recs/sec) [root@sdserver40_222 ~]# cat lottu01.sql -- Generated by Ora2Pg, the Oracle database Schema converter, version 17.4 -- Copyright 2000-2016 Gilles DAROLD. All rights reserved. -- DATASOURCE: dbi:Oracle:ora229 SET client_encoding TO 'UTF8'; \set ON_ERROR_STOP ON CREATE TABLE oratab ( id bigint, name varchar(20) ) ; -- Generated by Ora2Pg, the Oracle database Schema converter, version 17.4 -- Copyright 2000-2016 Gilles DAROLD. All rights reserved. -- DATASOURCE: dbi:Oracle:ora229 SET client_encoding TO 'UTF8'; \set ON_ERROR_STOP ON BEGIN; INSERT INTO oratab (id,name) VALUES (1001,E'li0924'); ALTER SEQUENCE IF EXISTS ggs_marker_seq RESTART WITH 7117; ALTER SEQUENCE IF EXISTS ggs_ddl_seq RESTART WITH 7117; COMMIT
解释:
[root@sdserver40_222 ~]# ora2pg -c /etc/ora2pg/ora2pg.conf [========================>] 1/1 tables (100.0%) end of scanning. [========================>] 1/1 tables (100.0%) end of table export. [root@sdserver40_222 ~]# cat lottu02.sql -- Generated by Ora2Pg, the Oracle database Schema converter, version 17.4 -- Copyright 2000-2016 Gilles DAROLD. All rights reserved. -- DATASOURCE: dbi:Oracle:ora229 SET client_encoding TO 'UTF8'; \set ON_ERROR_STOP ON CREATE FOREIGN TABLE oratab ( id bigint, name varchar(20) ) SERVER orcl OPTIONS(schema 'LOTTU', table 'ORATAB');
3. Modifying object structure
[root@sdserver40_222 ~]# cat /etc/ora2pg/ora2pg.conf ORACLE_HOME /u01/app/oracle #This directive is used to set the data source name in the form standard DBI DSN ORACLE_DSN dbi:Oracle:ora229 ORACLE_USER lottu ORACLE_PWD li0924 LOGFILE /tmp/Ora2Pg.log SCHEMA LOTTU TYPE TABLE ALLOW ORATAB REPLACE_TABLES ORATAB:LOTTU01 MODIFY_TYPE ORATAB:ID:INT,ORATAB:NAME:TEXT OUTPUT lottu03.sql [root@sdserver40_222 ~]# ora2pg -c /etc/ora2pg/ora2pg.conf [========================>] 1/1 tables (100.0%) end of scanning. [========================>] 1/1 tables (100.0%) end of table export. [root@sdserver40_222 ~]# cat lottu03.sql -- Generated by Ora2Pg, the Oracle database Schema converter, version 17.4 -- Copyright 2000-2016 Gilles DAROLD. All rights reserved. -- DATASOURCE: dbi:Oracle:ora229 SET client_encoding TO 'UTF8'; \set ON_ERROR_STOP ON CREATE TABLE lottu01 ( id int, name text ) ;
解释:
[root@sdserver40_222 ~]# ora2pg -c /etc/ora2pg/ora2pg.conf [========================>] 2/2 functions (100.0%) end of output. [root@sdserver40_222 ~]# cat lottu04.sql -- Generated by Ora2Pg, the Oracle database Schema converter, version 17.4 -- Copyright 2000-2016 Gilles DAROLD. All rights reserved. -- DATASOURCE: dbi:Oracle:ora229 SET client_encoding TO 'UTF8'; \set ON_ERROR_STOP ON CREATE OR REPLACE FUNCTION ora2pg_16_to10 (v_16_data text) RETURNS bigint AS $body$ DECLARE v_data bigint; v_char varchar(18); BEGIN v_char:=substring(v_16_data from 2); select sum(data) into v_data from ( SELECT ( case substr(upper(v_char),rownum,1) when 'A' then '10' when 'B' then '11' when 'C' then '12' when 'D' then '13' when 'E' then '14' when 'F' then '15' else substring(v_char from rownum for 1) end )*power(16,length(v_char)-rownum) data connect by rownum<=length(v_char) ); return v_data; exception when others then return null; end; $body$ LANGUAGE PLPGSQL SECURITY DEFINER ; -- REVOKE ALL ON FUNCTION ora2pg_16_to10 (v_16_data text) FROM PUBLIC; CREATE OR REPLACE FUNCTION ora2pg_add_1 (v_in_1 bigint,v_in_2 bigint) RETURNS bigint AS $body$ DECLARE v_data bigint; BEGIN v_data := v_in_1+v_in_2; return v_data; exception when others then return null; end; $body$ LANGUAGE PLPGSQL SECURITY DEFINER ; -- REVOKE ALL ON FUNCTION ora2pg_add_1 (v_in_1 bigint,v_in_2 bigint) FROM PUBLIC; [root@sdserver40_222 ~]# cat /etc/ora2pg/ora2pg.conf ORACLE_HOME /u01/app/oracle #This directive is used to set the data source name in the form standard DBI DSN ORACLE_DSN dbi:Oracle:ora229 ORACLE_USER lottu ORACLE_PWD li0924 LOGFILE /tmp/Ora2Pg.log SCHEMA LOTTU TYPE FUNCTION ALLOW ORA2PG_.* OUTPUT lottu04.sql
备注:
oracle迁移postgres之-Ora2Pg的更多相关文章
- oracle迁移postgres之-oracle_fdw
1. 安装oracle_fdw 在编译安装前,需要设置postgres的环境变量,如在.bash_profile中增加: export ORACLE_HOME=/u01/app/oracle expo ...
- 阿里云如何打破Oracle迁移上云的壁垒
2018第九届中国数据库技术大会,阿里云数据库产品专家萧少聪带来以阿里云如何打破Oracle迁移上云的壁垒为题的演讲.Oracle是指“数据库管理系统”,面对Oracle迁移上云的壁垒,阿里云如何能够 ...
- 适用MySQL Migration Toolkit 1.0 将oracle迁移到mysql中遇到的问题
这里主要说一下我在适用中碰到的问题,主要过程参考 http://www.cnblogs.com/duwenlei/p/3520759.html. 首先启动MySQLMigrationTool.exe ...
- 使用Microsoft SQL Server Migration Assistant for Oracle迁移数据库
前言:使用Microsoft SQL Server Migration Assistant for Oracle迁移Oracle数据库到SqlServer数据库. 准备:Oracle11g.SqlSe ...
- 使用navicat premium将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL
有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle. 很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面. ...
- Oracle迁移到MySQL性能下降的注意点(转)
背景:最近有较多的客户系统由原来由Oracle改造到MySQL后出现了性能问题CPU 100%,或是后台的CRM系统复杂SQL在业务高峰的时候出现堆积导致业务故障.在我的记忆里面淘宝最初从Oracle ...
- 从Oracle迁移到MySQL的各种坑及自救方案
当企业内部使用的数据库种类繁杂时,或者有需求更换数据库种类时,都可能会做很多数据迁移的工作.有些迁移很简单,有些迁移可能就会很复杂,大家有没有考虑过为了顺利完成复杂的数据库迁移任务,都需要考虑并解决哪 ...
- 怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL
有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle. 很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面. ...
- oracle、postgres、mysql数据库的建库、创建用户、导人导出备份总结
本文包含的内容:使用命令操作oracle.postgres.mysql的导入导出,登录到数据,创建用户 注:我在公司使用的是Center OS操作系统,所以oracle和postgres均是在Linu ...
随机推荐
- java中return与finally的执行顺序
可不能小看这个简单的 finally,看似简单的问题背后,却隐藏了无数的玄机.接下来我就带您一步一步的揭开这个 finally 的神秘面纱. 问题分析 首先来问大家一个问题:finally 语句块一定 ...
- CentOS7源码编译安装Postgresql9.5
1.安装必要的基本软件 yum install -y gcc.x86_64 glibc.x86_64 glibc-devel.x86_64 vim-enhanced.x86_64 gcc-java a ...
- [dpdk] 熟悉SDK与初步使用 (二)(skeleton源码分析)
接续前节:[dpdk] 熟悉SDK与初步使用 (一)(qemu搭建实验环境) 程序逻辑: 运行参数: 关键API: 入口函数: int rte_eal_init(int argc, char **ar ...
- 后台系统组件:一丶bootstrap table
http://www.cnblogs.com/landeanfen/p/4976838.html (bootstrap table) http://www.cnblogs.com/landeanfen ...
- docker-freebsd-20150625
http://www.docker.org.cn/book/docker/prepare-docker-1.html https://wiki.freebsd.org/Docker pkg insta ...
- win7 WindowsImageBackup 无法识别
控制面板\所有控制面板项\备份和还原
- tar命令实用介绍
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...
- (分享)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
原文地址 http://blog.csdn.net/yangkai_hudong/article/details/18705713
- 关于CLR、CIL、CTS、CLS、CLI、BCL和FCL
如果要想深入学习.NET平台,那么标题中的这些关键字对你来说并不陌生,这些名词构成了.NET庞大的生态系统,为了宏观认识.NET平台,学些.NET架构体系,针对一些常用常用名词的理解是很有必要的,未必 ...
- 极简Photoshop 教程
本文通过创建一个iPhone应用的启动界面来介绍常用的Photoshop 用法. 1,以下参数创建一个新图像 宽度:1242像素,高度:22208像素,分辨率:401,背景内容:透明,其它默认 2,建 ...