Oracle - 以正确的顺序从模式中导出 DDL 和数据
Oracle - Export DDL and Data from Schema in correct order
我需要从 Oracle 12cR1 模式创建 DDL 和数据的副本。
我无法使用 SYS 或其他高权限用户。
我只能使用 SQL DEVELOPER 使用架构凭据。
我拥有的权利是:
- 在架构中创建和更改对象权限(例如 CREATE
TABLE)。
- 在 table 上的插入、读取、更新和删除数据权限
在模式中。
- 对存储过程的执行权限,
架构中的函数和包。
我可以使用 Oracle SQL Developer 或其他第三方工具。
我使用了 "Database Export" 函数,但我发现无法以正确的顺序同时获取 DDL 和 INSERT 查询。有些 table 具有依赖性,因此我需要遵守 DDL 和查询的逻辑顺序。
您可以先禁用所有约束和触发器,然后再插入数据。加载数据后,启用它们。
您也可以先尝试使用PL/SQLDeveloper导出对象。此工具按依赖顺序导出对象。然后导出数据,但不确定是否依赖导出数据,可以试试导出时是否有禁用constraints/triggers选项。
在我看来,您应该使用专为完成此类任务而设计的工具,那就是 Data Pump(导出和导入)。它要求您获得对驻留在数据库服务器上的目录的特权,这是特权 (SYS) 用户创建和授予的权限。如果那里有 DBA,请让他们为您提供。
如果有 none,您仍然可以使用 Original EXP utility 在您自己的计算机上创建 DMP 文件。
export 的优势在于 Oracle 会处理所有似乎困扰您的事情。
如果我是你,我不会手动,真的没有必要那样做。除了它很耗时之外,您还必须注意外键约束,创建 slow INSERT INTO 语句……很快,不要这样做。使用(数据泵)导出和导入。
我需要从 Oracle 12cR1 模式创建 DDL 和数据的副本。 我无法使用 SYS 或其他高权限用户。 我只能使用 SQL DEVELOPER 使用架构凭据。 我拥有的权利是:
- 在架构中创建和更改对象权限(例如 CREATE TABLE)。
- 在 table 上的插入、读取、更新和删除数据权限 在模式中。
- 对存储过程的执行权限, 架构中的函数和包。
我可以使用 Oracle SQL Developer 或其他第三方工具。 我使用了 "Database Export" 函数,但我发现无法以正确的顺序同时获取 DDL 和 INSERT 查询。有些 table 具有依赖性,因此我需要遵守 DDL 和查询的逻辑顺序。
您可以先禁用所有约束和触发器,然后再插入数据。加载数据后,启用它们。
您也可以先尝试使用PL/SQLDeveloper导出对象。此工具按依赖顺序导出对象。然后导出数据,但不确定是否依赖导出数据,可以试试导出时是否有禁用constraints/triggers选项。
在我看来,您应该使用专为完成此类任务而设计的工具,那就是 Data Pump(导出和导入)。它要求您获得对驻留在数据库服务器上的目录的特权,这是特权 (SYS) 用户创建和授予的权限。如果那里有 DBA,请让他们为您提供。
如果有 none,您仍然可以使用 Original EXP utility 在您自己的计算机上创建 DMP 文件。
export 的优势在于 Oracle 会处理所有似乎困扰您的事情。
如果我是你,我不会手动,真的没有必要那样做。除了它很耗时之外,您还必须注意外键约束,创建 slow INSERT INTO 语句……很快,不要这样做。使用(数据泵)导出和导入。