Linux环境下使⽤sqlplus访问远程Oracle数据库
⾃⼰最近需要在 Oracle ⽣产环境检查⼀些数据,但是⽬前⼤多数的⽣产环境,出于安全考虑,不会提供图形界⾯让你使⽤类似 Navicat ⼯具让你直接访问数据库,⽹上了很多资料,⼤部分都⽐较过时或者⽆法使⽤。所以就把⾃⼰摸索的过程记录下来,希望可以帮到同样有需求的⼩伙伴
第⼀步:下载和安装⼯具
⾸先下载 Oracle 客户端和 sqlplus 链接⼯具(我使⽤ CentOS 7,其他版本系统需要在官⽅⼀下对应版本):
wget acle/repo/OracleLinux/OL7/oracle/instantclient21/x86_64/getPackage/oracle-instantclient-basic-21.1.0.0.0-1.x86_64.rpm
wget acle/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 ⽂件
打开当前环境变量配置:
如何连接oracle数据库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/a
⽂件格式如下:
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
就可以正常显⽰中⽂了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。