温馨提示×

linux oracle如何导入数据

小樊
42
2026-09-28 14:43:04
栏目: 云计算

在 Linux 环境下,Oracle 数据库导入数据常用的方法有以下几种,按使用频率和场景从常见到进阶说明:


一、使用 IMPDP(Data Pump Import,推荐)

前提:数据是通过 EXPDP 导出的(.dmp 文件)

1. 将 dmp 文件放到指定目录

mkdir -p /u01/dump
cp yourfile.dmp /u01/dump/

2. 创建或确认 Oracle 目录对象

sqlplus / as sysdba

CREATE OR REPLACE DIRECTORY dp_dir AS '/u01/dump';
GRANT READ, WRITE ON DIRECTORY dp_dir TO your_user;

3. 执行导入

impdp your_user/your_password \
  DIRECTORY=dp_dir \
  DUMPFILE=yourfile.dmp \
  LOGFILE=import.log

常见参数:

  • REMAP_SCHEMA=old_user:new_user
  • REMAP_TABLESPACE=old_ts:new_ts
  • TABLES=table1,table2
  • CONTENT=DATA_ONLY

二、使用 IMP(传统导入)

适用于老版本 EXP 导出的文件

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

三、使用 SQL*Loader 导入文本数据

适用于 CSV / TXT 文件

1. 准备控制文件 load.ctl

LOAD DATA
INFILE '/home/oracle/data.csv'
INTO TABLE test_table
FIELDS TERMINATED BY ','
(id, name, age)

2. 执行导入

sqlldr your_user/your_password control=load.ctl log=load.log

四、使用 SQL 脚本导入

sqlplus your_user/your_password @script.sql

或:

@/home/oracle/script.sql

五、常见问题

  • 权限不足:确认用户对目录和表有相应权限
  • 表空间不存在:使用 REMAP_TABLESPACE
  • 字符集问题:确认 NLS_LANG 环境变量

如果你能告诉我:

  • Oracle 版本
  • 数据文件类型(dmp / csv / sql)
  • 是否跨用户/跨表空间

我可以给你更精确的导入命令。

0 踩