文章目录

  • 导出指定 Oracle 模式

原文地址:http://ora2pg.darold.net/documentation.html

导出指定 Oracle 模式

导出 Oracle 数据库时可以选择导出指定模式(Schema)或者命名空间(Namespace),可以强制将其设置为连接数据库的用户。

SCHEMA
用于设置导出的模式名称。例如:

SCHEMA  APPS

将会导出 APPS 模式下的对象。

如果没有指定模式名称,并且启用了 EXPORT_SCHEMA ,Ora2Pg 将会导出 Oracle 实例中所有模式下的所有对象,并且对象名称以模式名为前缀。

EXPORT_SCHEMA

默认情况下,Oracle 中的模式不会被迁移到 PostgreSQL 数据库中,所有的对象使用默认的 Pg 命名空间进行创建。如果想要导出模式,并且在该命名空间下创建所有的对象,可以将 EXPORT_SCHEMA 参数设置为 1 。设置该参数将会在导出的 SQL 文件头部添加一个语句,将模式的搜索路径 search_path 设置为 SCHEMA 参数的值。如果想要改变搜索路径,可以使用 PG_SCHEMA 参数。

CREATE_SCHEMA

在输出文件的头部启用/禁用 CREATE SCHEMA 语句。该参数与 TABLE 导出类型相关,默认为启用。

COMPILE_SCHEMA

默认情况下,Ora2Pg 只导出有效的 PL/SQL 代码。设置该参数后,Oracle 会在导出之前尝试编译无效的代码,如果成功编译,就会导出相应的对象。

启用该配置将会强制 Oracle 在导出代码之前执行一次模式的编译。如果启用该参数的同时设置了 SCHEMA,只有该模式下的无效对象会进行重新编译;如果没有设置 SCHEMA,Oracle 中所有的模式都会进行编译。如果想要编译指定模式下的无效对象,可以将 COMPILE_SCHEMA 设置为该模式名称。

‘VALID’ 或者 ‘INVALID’ 状态适用于函数、过程、包以及用户定义类型。

EXPORT_INVALID

如果上面的配置选项无法验证 PL/SQL 代码,可以启用该选项导出所有的PL/SQL 代码,包括无效的代码。 ‘VALID’ 或 ‘INVALID’ 状态适用于函数、过程、包以及用户定义类型。

PG_SCHEMA

定义导入操作使用的 PostgreSQL 模式。默认情况下,如果将 EXPORT_SCHEMA 设置为 1,导入 PostgreSQL 时的 search_path 将会设置为 SCHEMA 参数指定的模式名称。

该参数的值可以是一个逗号分隔的模式名称列表,但是使用 TABLE 导出类型除外,因为这种导出类型会产生 CREATE SCHEMA 语句,而该语句不支持指定多个模式名称。例如,如果将 PG_SCHEMA 设置为 “user_schema, public”,生成的搜索路径设置语句如下:

SET search_path = user_schema, public;

强制导入时使用其他模式(user_schema)而不是 SCHEMA 指定的 Oracle 模式。

也可以使用以下语句为连接 PostgreSQL 的用户设置默认的 search_path:

ALTER ROLE username SET search_path TO user_schema, public;

这样就不需要设置 PG_SCHEMA 参数了。

SYSUSERS
如果没有明确指定模式,Ora2Pg 将会导出不属于以下系统模式或角色的所有对象:

CTXSYS,DBSNMP,EXFSYS,LBACSYS,MDSYS,MGMT_VIEW,OLAPSYS,ORDDATA,OWBSYS,
ORDPLUGINS,ORDSYS,OUTLN,SI_INFORMTN_SCHEMA,SYS,SYSMAN,SYSTEM,WK_TEST,
WKSYS,WKPROXY,WMSYS,XDB,APEX_PUBLIC_USER,DIP,FLOWS_020100,FLOWS_030000,
FLOWS_040100,FLOWS_010600,FLOWS_FILES,MDDATA,ORACLE_OCM,SPATIAL_CSW_ADMIN_USR,
SPATIAL_WFS_ADMIN_USR,XS$NULL,PERFSTAT,SQLTXPLAIN,DMSYS,TSMSYS,WKSYS,
APEX_040200,DVSYS,OJVMSYS,GSMADMIN_INTERNAL,APPQOSSYS,MGMT_VIEW,
ODM,ODM_MTR,TRACESRV,MTMSYS,OWBSYS_AUDIT,WEBSYS,WK_PROXY,
OSE$HTTP$ADMIN,AURORA$JIS$UTILITY$,AURORA$ORB$UNAUTHENTICATED,
DBMS_PRIVILEGE_CAPTURE

某些 Oracle 安装中可能还包含其他的系统角色。使用 SYSUSERS 选项可以定义一个使用逗号分隔的模式排除列表。例如:

SYSUSERS        INTERNAL,SYSDBA,BI,HR,IX,OE,PM,SH

将 INTERNAL 和 SYSDBA 等角色添加到模式排除列表中。

FORCE_OWNER

默认情况下,导入的数据库对象属于连接 PostgreSQL 时使用的用户。如果使用其他用户(例如 postgres)执行导入,将该参数设置为 1,可以强制 Ora2Pg 将导入对象的拥有者设置为与 Oracle 数据库中的同名用户;或者将该参数设置为其他的用户名,可以将导入对象的拥有者设置为该用户。

FORCE_SECURITY_INVOKER

Ora2Pg 使用 Oracle 中设置的函数安全权限,通常是 SECURITY DEFINER。如果想要将所有的函数安全权限设置为 SECURITY INVOKER,可以启用该选项。

USE_TABLESPACE

如果启用了该选项,ora2pg 使用 Oracle 数据库中的表空间名称导出所有的表、索引约束和索引。该选项只能用于非 TEMP、USERS 以及 SYSTEM 表空间。

WITH_OID

如果启用了该选项,Ora2Pg 在创建表或者将视图转换为表时增加 WITH (OIDS) 参数。默认禁用该参数,和 PostgreSQL 一致。

LOOK_FORWARD_FUNCTION

指定一个逗号分隔的模式列表,Ora2Pg 在导出当前模式之前,将会在这些模式下查找所有的函数/过程/包声明。将函数调用替换为 OUT 参数时,如果某个函数是在其他的包中进行了声明,无法进行函数调用的重写,因为 Ora2Pg 只能获取当前模式下的函数声明。

人生本来短暂,你又何必匆匆!点个赞再走吧!

Ora2Pg 高级配置之导出指定模式相关推荐

  1. Nacos 1.1.0发布,支持灰度配置和地址服务器模式

    Nacos 是阿里巴巴开源的配置中心和服务发现产品,开源距今已经超过一年的时间.本次1.1.0的发布,带来了许多重量级的特性更新,包括灰度配置等社区呼声很高的特性,下面会介绍1.1.0版本发布的新特性 ...

  2. HBase高级配置跟调整(1)

    搜搜 日榜 周榜 月榜 总榜 HBase高级配置跟调整(1) 2015-03-25 05:52 | 4932人阅读 | 来源 HBase高级配置和调整(1) 在对HBase集群进行调整之前,你需要先知 ...

  3. 大型企业网络配置系列课程详解(三)--OSPF高级配置与相关概念的理解

    大型企业网络配置系列课程详解(三)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...

  4. 无法加入nacos服务列表_Nacos 1.1.1 发布,支持灰度配置和地址服务器模式

    Nacos 是阿里巴巴开源的配置中心和服务发现产品,开源距今已经超过一年的时间.本次1.1.0的发布,带来了许多重量级的特性更新,包括灰度配置等社区呼声很高的特性,下面会介绍1.1.0版本发布的新特性 ...

  5. 《Cisco/H3C交换机高级配置与管理技术手册》目录

    备受业界关注,备受无数读者殷切期待的,我的2012年新作--<Cisco/H3C交换机高级配置与管理技术手册>,经过一年的艰辛编写,现终于胜利封笔.现应许多热心读者的要求,把本书的原始目录 ...

  6. firewalld防火墙配置、测试服务、高级配置与IP伪装、端口转发

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Firewalld防火墙 防火墙基础 一.防火墙配置 二.使用防火墙安装http服务测试分别测试内网.外网.dmz 三.firewal ...

  7. 【Python】PDF文档导出指定章节为TXT

    PDF文档导出指定章节为TXT 需求 要导出3000多个pdf文档的特定章节内容为txt格式(pdf文字可复制). 解决 导出PDF 查了一下Python操作PDF文档的方法,主要是通过3个库,PyP ...

  8. Linux下如何实现用户的集中管理(NIS服务器的高级配置)

    Linux下如何实现用户的集中管理 (NIS服务器的高级配置)   一.NIS服务器的属性设置   1.修改NIS系统的主机名 Linux系统可以使用hostname命令查看和临时设置Linux系统的 ...

  9. Linux运维实战之DNS的高级配置(转发器、视图等)

    上次博文我们具体配置了一台DNS服务器并实现了主辅之间的区域传送,本次博文我们来看看DNS的一些高级配置. 在进行DNS的高级配置之前,必须要理解DNS的原理(参见http://sweetpotato ...

最新文章

  1. 使用awk获得java进程号,获取进程号并赋值判断进程状态
  2. 文巾解题 9 回文数
  3. 【1024】阿里开源项目汇总
  4. org.springframework.dao.InvalidDataAccessApiUsageException: Write operations
  5. python3中pip的安装、常见问题及万能解决方案。
  6. ASP.NET MVC 2 验证
  7. JS中用构造函数创建对象
  8. Rust 让人奔溃的那些特性!
  9. java字符串怎么拼接字符串_Java中String使用+ 拼接字符串的原理是什么?
  10. PyQt5-QLineEdit控件使用
  11. 开发一个APP到底要多少钱?
  12. c# 接管系统鼠标_4个阶段的方法来接管大型,混乱的IT系统
  13. 如何下载微信公众号视频
  14. 后端程序员生产力工具合集
  15. 知识付费小程序源码可开流量主
  16. FDM3D打印机结构类型总结
  17. php ses 发送邮件,使用 Amazon SES API 和 AWS SDK for PHP 版本 3 验证电子邮件身份 - 适用于 PHP 的 AWS 开发工具包...
  18. nvme固态硬盘安装win10填坑记
  19. 没NFC功能的手机如何能刷公交卡
  20. 华为虚拟服务器 vrm,配置虚拟化管理服务器-VRM

热门文章

  1. Prometheus 简介与架构
  2. MFC DockPane 分割窗口 嵌入对话框
  3. linux最新flash+player,Adobe Flash Player v10.0.21.1 Alpha For Linux
  4. “ 装逼不成,被雷劈了。。。。 ”答案
  5. 服务器远程桌面输完密码闪断,远程桌面的连接闪断解决方案
  6. 不管你学的是什么专业,你都应该多少懂些管理学的东西
  7. 没有相爱,只有相杀:微软和谷歌又撕上了...
  8. 深入解读微服务架构下分布式事务解决方案
  9. 分享一个嗖嗖移动管理系统
  10. 【项目问题总结】4:修改操作的重复性验证逻辑