環境
操作系統:
CentOS7.2.1511 x86_64
准備安裝包
在這個網站:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 下載如下安裝包
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm //這個是sdk 的,文件名上沒有說明,特此說明
可以使用wget命令直接下載,也可以在windows上下載好了再通過WinSCP工具上傳到服務器上。我的Oracle server端是10g,所以我找了個低版本的Client,在windows上試過11g的客戶端是能連接10gserver的,所以我下載的是11.2。
上面安裝的幾個包的說明:
basic是基礎包,使用其的目的是運行OCI、OCCI、JDBC-OCI這幾個應用程序;
sqlplus是補充包/文件,目的是運行sql*plus的即時客戶端;
devel等同於oracle-sdk,包含頭文件和示例文件,目的是開發Oracle應用程序;
如果要遠程連接數據庫,這三個rpm包是必不可少的,一定要安裝。
其余可選的包還有:
oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm --補充包/文件,為運行ODBC環境附加庫; oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm --補充JDBC下的XA、國際標准、行集操作;
這些rpm包在官網上都能下載到,rpm是安裝版的包,還有一種是zip包,zip包相當於是解壓后免安裝版。安裝時要選擇和你的Oracle server匹配的客戶端來安裝,例如我要連接的server版本信息是:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 -64bit Production
所以我在選擇客戶端時也會選擇對應版本的客戶端11.2.0.4.0。
安裝
我把下載好的rpm包放在了OracleClient這個目錄下。
[root@localhost OracleClient]# rpm -ivh ./oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 准備中... ################################# [100%] 正在升級/安裝... 1:oracle-instantclient11.2-basic-11################################# [100%] [root@localhost OracleClient]# rpm -ivh ./oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm 准備中... ################################# [100%] 正在升級/安裝... 1:oracle-instantclient11.2-devel-11################################# [100%] [root@localhost OracleClient]# rpm -ivh ./oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm 准備中... ################################# [100%] 正在升級/安裝... 1:oracle-instantclient11.2-sqlplus-################################# [100%]
本次安裝的時候沒有指定安裝路徑,所以它會安裝到默認路徑下。使用如下命令可以查看這個rpm包的默認安裝路徑:
[root@localhost OracleClient]# rpm -qpl oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm /usr/lib/oracle/11.2/client64/bin/adrci /usr/lib/oracle/11.2/client64/bin/genezi /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 /usr/lib/oracle/11.2/client64/lib/libnnz11.so /usr/lib/oracle/11.2/client64/lib/libocci.so.11.1 /usr/lib/oracle/11.2/client64/lib/libociei.so /usr/lib/oracle/11.2/client64/lib/libocijdbc11.so /usr/lib/oracle/11.2/client64/lib/ojdbc5.jar /usr/lib/oracle/11.2/client64/lib/ojdbc6.jar /usr/lib/oracle/11.2/client64/lib/xstreams.jar
在client64下創建目錄 network/admin,然后把server端的tnsnames.ora上傳到這個目錄下
配置環境變量
在當前用戶的家目錄下打開文件:vim .bash_profile,添加如下幾行:
#enviroment variable of oracle client
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_BASE=/usr/lib/oracle/11.2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
然后保存並退出。接下來使用source ~/.bash_profile,強制刷新配置文件。如果source執行后提示找不到命令,那么可能是你要source的文件內容有問題。
在bash窗口輸入sqlplus,如果提示:
[root@localhost ~]# sqlplus
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 15 14:27:47 2019
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Enter user-name:
這樣就意味着客戶端已經安裝成功了。
如果出現:
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
這說明你的環境變量配的不正確。
連接數據庫
接下來在終端中輸入如下指令:
[root@localhost ~]# sqlplus bsits2/bsits2@ORCL_201 SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 15 16:58:23 2019 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production With the Partitioning, OLAP and Data Mining options SQL>
這表示已經連接連到了數據庫。在這個示例中,bsits2/bsits2@ORCL_201這個字符串中的bsits2/bsits2分別是目標數據庫的用戶名和密碼,ORCL_201這個是你在TNS中配置的網絡服務名。如果要退出sqlplus的話,只要在sqlplus的窗口中輸入exit即可。
SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production With the Partitioning, OLAP and Data Mining options
讓查詢結果格式化輸出
在使用sqlplus的時候會遇到一條記錄不能顯示在同一行的情況。
可以通過下面幾個參數,根據實際情況進行調整:
show linesize : 查看當前設置的sqlplus輸出的最大行寬
set linesize : 設置sqlplus輸出的最大行寬
column : 修改顯示字段的長度或名稱
column col_name format a15 --將列col_name(字符型)顯示最大寬度調整為15個字符
column col_num format 999999 --將列col_num(num型)顯示最大寬度調整為6個字符
column col_num heading col_num2 --將col_num的列名顯示為col_num2
歡迎指正,感激不盡。