You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CLI工具将Oracle测试库导出为可Git维护的SQL文件?

Oracle命令行导出带数据的SQL文件方案

方案1:用SQL Developer命令行工具(sqldeveloper-cli)

这是最贴近图形化导出向导的命令行方式,能直接生成包含表结构和INSERT数据的SQL文件:

  1. 创建导出配置文件export_config.xml:
<export>
  <connection>test/test@XEPDB1</connection>
  <type>EXPORT</type>
  <objects>
    <object>
      <name>TEST.*</name>
      <type>TABLE</type>
    </object>
  </objects>
  <format>SQL</format>
  <includeData>true</includeData>
  <filename>test_db_export.sql</filename>
  <directory>/your/target/path</directory>
</export>
  1. 执行导出命令:
sqldeveloper-cli export -config export_config.xml

方案2:用expdp+自定义脚本(适合批量场景)

如果需要更灵活的控制,可先导出dmp再生成完整SQL:

  1. 导出包含全量内容的dmp文件:
expdp test/test@XEPDB1 dumpfile=test_full.dmp directory=DUMP_DIR content=all schemas=TEST
  1. 提取DDL到SQL文件:
impdp test/test@XEPDB1 dumpfile=test_full.dmp directory=DUMP_DIR sqlfile=test_ddl.sql
  1. 编写sqlplus脚本生成INSERT语句(示例针对单表,可批量扩展):
    创建gen_inserts.sql:
SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0 LINESIZE 1000
SPOOL test_data_inserts.sql
SELECT 'INSERT INTO currencies_countries (currency_id, country_id) VALUES (''' || currency_id || ''', ''' || country_id || ''');' FROM currencies_countries;
SPOOL OFF
EXIT;

执行脚本:

sqlplus test/test@XEPDB1 @gen_inserts.sql

最后合并test_ddl.sql和test_data_inserts.sql即可得到完整的初始化SQL。

方案3:sqlplus单表快速导出(适合少量表)

如果只需要导出个别表的数据,直接用sqlplus生成INSERT语句:
创建currencies_countries_export.sql:

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0 LINESIZE 1000
SPOOL currencies_countries.sql
SELECT 'INSERT INTO currencies_countries (currency_id, country_id) VALUES (''' || currency_id || ''', ''' || country_id || ''');' FROM currencies_countries;
SPOOL OFF
EXIT;

执行命令:

sqlplus test/test@XEPDB1 @currencies_countries_export.sql

关键提示

  • 确保执行命令的用户拥有EXP_FULL_DATABASE权限,否则可能无法导出部分对象
  • 导出前设置正确的字符集避免乱码:export NLS_LANG=AMERICAN_AMERICA.AL32UTF8(根据实际环境调整)
  • 生成的SQL文件需符合Docker初始化要求:后缀为.sql,语句末尾带分号,避免使用SQL*Plus专属命令

内容的提问来源于stack exchange,提问作者hendry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 13:01:10