Oracle 11.2.0.4.0中能否使用.csv文件作为expdp的参数文件?
在Oracle 11.2.0.4.0中使用CSV作为expdp参数文件的可行性
嘿,这个问题我刚好踩过坑!在Oracle 11.2.0.4.0版本里,expdp(数据泵导出)并不支持直接将.csv文件作为参数文件使用,原因和解决思路如下:
先纠正一个小细节:你命令里写的
parameter是笔误,expdp指定参数文件的正确参数是parfile。这个参数要求的是纯文本格式的配置文件,里面是键值对形式的导出规则,比如:USERID=scott/xxx@dev TABLES=EMP,DEPT DIRECTORY=DATA_PUMP_DIR LOGFILE=exp_full.log而.csv是逗号分隔的数据存储格式,结构和expdp需要的参数配置完全不匹配,直接指定会触发参数解析错误。
如果你是想利用.csv里的内容(比如要导出的表名列表)来执行expdp,那可以换个思路实现:
- 手动转换:把.csv中的目标内容(比如表名)提取出来,整理成
TABLES=表1,表2,...的格式,写入一个.par或.txt后缀的参数文件,再执行expdp scott/xxx@dev parfile=your_config.par。 - 脚本自动化:如果内容较多,写个简单的Shell/PL/SQL脚本读取.csv文件,动态生成expdp的参数文件或直接拼接执行命令。举个Shell脚本的例子,假设你的
table_full.csv每行存一个表名:# 生成参数文件 echo "USERID=scott/xxx@dev" > exp_config.par # 把CSV里的表名转成TABLES参数格式 echo "TABLES=$(tr '\n' ',' < table_full.csv | sed 's/,$//')" >> exp_config.par # 执行导出 expdp parfile=exp_config.par
- 手动转换:把.csv中的目标内容(比如表名)提取出来,整理成
总结一下:直接用.csv当expdp的参数文件行不通,但可以通过转换或脚本的方式复用.csv里的内容来完成导出任务。
内容的提问来源于stack exchange,提问作者Hima
相关产品推荐
相关产品推荐

