安装 sql 装载程序 linux
Install sql loader linux
我尝试在 redhat 机器上安装 Oracle 即时客户端。我有 instantClient basic、sdk 和 sqlplus,但找不到任何 sqlldr。有人可以帮我做吗?
谢谢
根据@Alex Poole 在他的评论中提供的信息,我能够将 sqlldr
二进制文件添加到 Redhat linux 上的 Oracle 即时客户端安装中。关键是可以访问完整的 oracle 客户端(或数据库)安装,从中获取 sqlldr
二进制文件。
总结一下我使用 Oracle 11.2.0.3.0 的过程:
安装 Oracle 即时客户端
从 oracle 即时客户端 rpm 下载:
- oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
- oracle-instantclient11.2-jdbc-11.2.0.3.0-1.x86_64.rpm
- oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
- oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
安装:
yum install oracle* --nogpgcheck
创建 Oracle 环境变量
在/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
从完整的 Oracle 复制 sqlldr 和消息文件 client/database
[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,...]
....
成功!
已接受答案的更简单替代方案,不需要现有的完整客户端安装即可从以下位置窃取 sqlldr 二进制文件:
您可以从名为 "Instant Client Package - Tools: Includes Data Pump, SQL*Loader and Workload Replay Client"
的单独即时客户端包中从 OTN 下载 SQL 加载程序
这是 linux 的 link:Instant Client Downloads for Linux x86-64
安装oracle-instantclient12.2-tools
,其中有sqlldr
;并确保您的 PATH
包含 /usr/lib/oracle/12.2/client64/bin
.
相应地调整版本。
我尝试在 redhat 机器上安装 Oracle 即时客户端。我有 instantClient basic、sdk 和 sqlplus,但找不到任何 sqlldr。有人可以帮我做吗? 谢谢
根据@Alex Poole 在他的评论中提供的信息,我能够将 sqlldr
二进制文件添加到 Redhat linux 上的 Oracle 即时客户端安装中。关键是可以访问完整的 oracle 客户端(或数据库)安装,从中获取 sqlldr
二进制文件。
总结一下我使用 Oracle 11.2.0.3.0 的过程:
安装 Oracle 即时客户端
从 oracle 即时客户端 rpm 下载:
- oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
- oracle-instantclient11.2-jdbc-11.2.0.3.0-1.x86_64.rpm
- oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
- oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
安装:
yum install oracle* --nogpgcheck
创建 Oracle 环境变量
在/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
从完整的 Oracle 复制 sqlldr 和消息文件 client/database
[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,...]
....
成功!
已接受答案的更简单替代方案,不需要现有的完整客户端安装即可从以下位置窃取 sqlldr 二进制文件:
您可以从名为 "Instant Client Package - Tools: Includes Data Pump, SQL*Loader and Workload Replay Client"
的单独即时客户端包中从 OTN 下载 SQL 加载程序这是 linux 的 link:Instant Client Downloads for Linux x86-64
安装oracle-instantclient12.2-tools
,其中有sqlldr
;并确保您的 PATH
包含 /usr/lib/oracle/12.2/client64/bin
.
相应地调整版本。