有没有办法将 Oracle db 转储为 SQL 语句,就像 pg_dump 一样?

有没有办法将 Oracle db 转储为 SQL 语句,就像 pg_dump 一样?

我对 Oracle 还很陌生。看起来所有的 Oracle DBA 都只使用二进制转储。这有时会造成问题,而且对我来说似乎毫无用处(性能提升必然微不足道),但我又知道些什么呢。

  1. 有什么好的理由我却想不起来吗?

  2. 是否有像 Postgres 的 pg_dump 这样的工具可以从数据库生成 SQL 语句?

其中一个应用程序可以从一个版本移动到另一个版本,或者将数据转换到另一个数据库。

答案1

我不知道 Oracle 提供的任何工具可以满足您的要求。虽然我过去曾使用过数据库可视化工具从 oracle (DDL 和插入语句) 导出较小的表/模式与 pg_dump 不太一样。

但是,如果您打算“将数据转换到另一个数据库”,而另一个数据库是 postgres,那么请查看ora2pg

答案2

您可以使用数据泵来实现这一点。使用 expdp 和选项 content=metadat_only,这会创建一个没有数据的导出。您可以使用包含数据的导出文件(如果可用),但如果您只需要为此写入创建一个文件,则数据是不必要的。使用 impdp 和选项 sqlfile=file_name.sql。这会将所有 DDL 写入 file_name.sql。

详情链接

相关内容