• 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
    

    就可以正常显示中文了。

  • 相关阅读:
    CC++ 文件操作
    loadrunner之Paramater在负载测试中的数据生成规则
    loadrunner关联及web_reg_save_param方法浅析
    mysql union 与 union all 语法及用法
    sql 语句中as的用法和作用
    数据库主从复制和读写分离
    《剑指offer》算法题第十二天
    《剑指offer》算法题第十一天
    《剑指offer》算法题第十天
    《剑指offer》算法题第九天
  • 原文地址:https://www.cnblogs.com/xiao2shiqi/p/14877579.html
Copyright © 2020-2023  润新知