温馨提示×

ubuntu oracle如何导入数据

小樊
41
2026-09-07 21:00:10
栏目: 云计算

Ubuntu 上使用 Oracle 数据库 导入数据,常见方式取决于你的数据格式和 Oracle 版本。下面按最常用场景给你一个清晰指引。


一、使用 impdp(数据泵导入,推荐 ✅)

1️⃣ 前置条件

  • Oracle 已安装(通常是 Oracle 19c / 21c)
  • 使用 oracle 用户
  • 已创建 Directory 对象
sudo su - oracle

2️⃣ 创建导入目录(如果还没有)

sqlplus / as sysdba

CREATE OR REPLACE DIRECTORY imp_dir AS '/u01/oradata/imp';
GRANT READ, WRITE ON DIRECTORY imp_dir TO your_user;
EXIT;

把数据文件放到:

/u01/oradata/imp/

3️⃣ 导入 dump 文件

impdp your_user/your_password \
  DIRECTORY=imp_dir \
  DUMPFILE=export.dmp \
  LOGFILE=import.log

常见参数:

REMAP_SCHEMA=old_user:new_user
REMAP_TABLESPACE=old_ts:new_ts
TABLE_EXISTS_ACTION=REPLACE

二、使用 imp(传统导入,老版本)

imp your_user/your_password \
  FILE=export.dmp \
  FROMUSER=old_user \
  TOUSER=new_user \
  LOG=import.log

⚠️ 新版本 Oracle 已不推荐


三、导入 SQL 文件

1️⃣ 普通 SQL

sqlplus your_user/your_password @data.sql

2️⃣ 大 SQL 文件

sqlplus your_user/your_password
@/path/to/data.sql

四、导入 CSV 数据(常用场景)

方法 1:SQL*Loader(官方 ✅)

sqlldr your_user/your_password control=load.ctl

load.ctl 示例:

LOAD DATA
INFILE 'data.csv'
INTO TABLE emp
FIELDS TERMINATED BY ','
( id, name, salary )

方法 2:外部表(适合大文件)

CREATE TABLE ext_emp
ORGANIZATION EXTERNAL (...)

五、常见错误排查

问题 解决
ORA-12162 设置 ORACLE_SID
ORA-39002 Directory 权限问题
中文乱码 设置 NLS_LANG
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

六、我可以更具体地帮你

你可以告诉我:

  1. Oracle 版本(19c / 21c?)
  2. 数据格式(.dmp / .sql / .csv
  3. 是否是整机迁移还是单表导入

我可以给你精确命令模板

0