在 Ubuntu + Oracle 环境下,“导入数据”通常有以下几种常见场景。我先按最常用方式给你讲,再补充不同情况。
确保你已经:
.dmp 文件ORACLE_HOME 和 SID切换为 oracle 用户:
sudo su - oracle
设置环境变量:
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
sqlplus / as sysdba
CREATE OR REPLACE DIRECTORY dpdir AS '/u01/dump';
GRANT READ, WRITE ON DIRECTORY dpdir TO your_user;
EXIT;
把 .dmp 文件放到 /u01/dump
impdp your_user/your_password \
DIRECTORY=dpdir \
DUMPFILE=xxx.dmp \
LOGFILE=import.log
常见参数:
REMAP_SCHEMA=old_user:new_user
REMAP_TABLESPACE=old_ts:new_ts
TABLE_EXISTS_ACTION=REPLACE
适用于老版本 .dmp:
imp user/pass@orcl file=xxx.dmp full=y
⚠️ 不推荐新项目使用
sqlplus user/pass@orcl @xxx.sql
或从 SQL 中:
@/path/to/xxx.sql;
sqlldr user/pass control=xxx.ctl
ORA-39002:目录没权限ORA-12162:SID 没设置insufficient privileges:用户权限不足为了更精准帮你,我需要知道:
.dmp / .sql / .csv)我可以直接给你完整可复制命令。