我尝试在redhat机器上安装Oracle即时客户端。我有instantClient基本,sdk和sqlplus但我找不到任何sqlldr。有人可以帮我做吗? 感谢
答案 0 :(得分:15)
根据@Alex Poole在评论中提供的信息,我能够将sqlldr
二进制文件添加到redhat linux上的Oracle即时客户端安装中。关键是要访问完整的oracle客户端(或数据库)安装,从中获取sqlldr
二进制文件。
总结这里是我使用Oracle 11.2.0.3.0的过程:
从oracle instant client下载rpms:
安装:
yum install oracle* --nogpgcheck
在/etc/profile.d/oracle.sh
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
[root@redhat bin]# pwd
/usr/lib/oracle/11.2/client64/bin
[root@redhat bin]# scp root@oracleServer:/OracleHome/db/product/11gR2/bin/sqlldr .
试一试:
[root@redhat bin]# sqlldr
Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL
我们需要从Oracle数据库中复制ulus.msb
文件。但首先我们需要创建正确的目录结构:
[root@redhat client64]# pwd
/usr/lib/oracle/11.2/client64
[root@redhat client64]# mkdir -p rdbms/mesg
[root@redhat client64]# scp root@oracleServer:/OracleHome/db/product/11gR2/rdbms/mesg/ulus.msb rdbms/mesg/
在消息文件到位后,再试一次:
[root@redhat client64]# sqlldr
SQL*Loader: Release 11.2.0.3.0 - Production on Tue Oct 20 10:12:55 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Usage: SQLLDR keyword=value [,keyword=value,...]
....
成功!
答案 1 :(得分:1)
更简单的替代接受的答案,不需要现有的完整客户端安装来窃取sqlldr二进制文件:
您可以在名为“Instant Client Package - 工具:包括数据泵, SQL * Loader 和Workload Replay Client”的单独即时客户端软件包中从OTN下载SQL加载程序
以下是linux的链接:Instant Client Downloads for Linux x86-64
答案 2 :(得分:0)
安装oracle-instantclient12.2-tools
,其中有sqlldr
;并确保您的PATH
包含/usr/lib/oracle/12.2/client64/bin
。
相应地调整版本。