Linux 環境下使用 sqlplus 訪問遠程 Oracle 數據庫


自己最近需要在 Oracle 生產環境檢查一些數據,但是目前大多數的生產環境,出於安全考慮,不會提供圖形界面讓你使用類似 Navicat 工具讓你直接訪問數據庫,網上找了很多資料,大部分都比較過時或者無法使用。所以就把自己摸索的過程記錄下來,希望可以幫到同樣有需求的小伙伴

第一步:下載和安裝工具

首先下載 Oracle 客戶端和 sqlplus 鏈接工具(我使用 CentOS 7,其他版本系統需要在官方找一下對應版本):

wget https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient21/x86_64/getPackage/oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm
wget https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient21/x86_64/getPackage/oracle-instantclient-sqlplus-21.1.0.0.0-1.x86_64.rpm

然后安裝 rpm 包,命令如下:

rpm -ivh oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient-sqlplus-21.1.0.0.0-1.x86_64.rpm

安裝后通常客戶端會在如下目錄:

/usr/lib/oracle/21/client64

如果不確定的話,可以使用 whereis oracle 搜索一下看看,接下來開始配置

第二步:配置環境和 /network/admin 文件

打開當前環境變量配置:

vim /etc/profile

首先把 oracle/client 程序加入 Linux 系統環境變量

export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin

ORACLE_HOME 根據你自己的系統路徑調整,最后可以刷新一下文件

source /etc/profile

然后創建連接文件,必須在 $ORACLE_HOME/network/admin 目錄下:

cd /usr/lib/oracle/21/client64
vim network/admin/tnsnames.ora

文件格式如下:

test =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = *.*.*.*)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = your_service_id)
    )
  )

第三步:連接和訪問

配好環境變量就可以使用 sqlplus 命令,格式是: sqlplus user/pass@tnsnames的實例名,如下:

sqlplus user/pass@test

SQL*Plus: Release 21.0.0.0.0 - Production on Fri Jun 11 14:37:00 2021
Version 21.1.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> 

看到以上命令就代表成功了,然后就可以執行 SQL 查看數據了:

# 查看當前用戶的所有表
SELECT table_name FROM user_tables;

sqlplus 中文亂碼問題

最后如果遇到 sqlplus 中文亂碼問題,可以修改當前 /etc/profile 在系統上加入對字符編碼: "SIMPLIFIED CHINESE_CHINA.AL32UTF8" 的支持即可,具體如下:

vim /etc/profile
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
source /etc/profile

就可以正常顯示中文了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM