Navicat 本身不生成标准 Oracle .dmp 文件,其“数据泵导出”仅生成 SQL 脚本;真正生成 .dmp 文件必须使用 Oracle 服务端的 expdp 工具,并满足目录、权限和数据库安装三前提。
Navicat 本身不生成标准 Oracle DMP 文件,它做的是对象级导出(SQL 或数据传输),不是 Data Pump 级备份。想得到 .dmp 文件,必须用 expdp 命令,Navicat 只能调用或辅助准备环境。
这是最常用、最可控的本地备份方式,适合开发/测试环境迁移或结构快照。
– 取消勾选「创建记录」可仅导出 DDL(表、索引、约束等)
– 勾选「创建记录」则同时导出 INSERT 语句(注意:大数据量时会极慢且文件巨大)
COMMIT,导入时建议用 Navicat 的「运行 SQL 文件」而非手动执行,它会自动分段提交适用于把远程 Oracle 表直接复制到本地 Oracle 实例,绕过文件中转,但要求本地已装 Oracle 并建好用户+表空间。
ORA-01950: 表空间 'USERS' 中无权限
ORA-01740: 标识符中缺失双引号
如果你坚持要 .dmp 文件(比如 DBA 要求归档),Navicat 无法替代命令行,但能帮你验证前置条件是否到位。
SELECT * FROM dba_directories;,记下合法的 directory 名(如 DATA_PUMP_DIR)READ、WRITE on that directory,仅 DBA 角色不够 —— 报 ORA-31631 就是这原因/u01/app/oracle/dpdump)必须对 oracle 用户可写,否则 ORA-39070
真正麻烦的不是操作步骤,而是权限链路上任何一环断掉都会卡在报错里——DIRECTORY 名大小写敏感、路径属主不对、甚至 Oracle listener 没监听对应 service_name,都可能导致看似“配置完成”实则导出失败。别依赖 Navicat 界面提示,出错后第一反应是切到服务器查 expdp 日志和 dba_directories 视图。