Oracle数据库使用sqlplus时的连接错误与方向键乱码解决

下面我会详细介绍“Oracle数据库使用sqlplus时的连接错误与方向键乱码解决”的完整攻略。

问题描述

在使用 sqlplus 连接 Oracle 数据库时,常见出现连接错误以及方向键乱码的问题。例如在连接时,出现以下提示:

$ sqlplus username/password@hostname:port/sid
Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found

或者在输入命令时,使用方向键时出现乱码问题。

连接错误解决方法

连接错误通常是由于环境变量配置问题导致的。解决方法如下:

  1. 设置 ORACLE_HOME 环境变量。指向 Oracle 安装目录,例如 /opt/oracle/product/10.2.0/db_1/

$ export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1/

  1. 设置 LD_LIBRARY_PATH 环境变量。指向 Oracle 安装目录下的 lib 目录,例如 /opt/oracle/product/10.2.0/db_1/lib/

$ export LD_LIBRARY_PATH=/opt/oracle/product/10.2.0/db_1/lib/

  1. 设置 PATH 环境变量。包含 Oracle 安装目录下的 bin 目录,例如 /opt/oracle/product/10.2.0/db_1/bin/

$ export PATH=$PATH:/opt/oracle/product/10.2.0/db_1/bin/

  1. 调用 sqlplus 命令时指定语言代码。例如 zh_CNen_US

$ sqlplus username/password@hostname:port/sid LANG=zh_CN.UTF8

方向键乱码解决方法

方向键乱码通常是由于终端不支持 UTF-8 编码或者 Oracle 自带的 sqlplus 程序不支持 UTF-8 编码导致的。解决方法如下:

  1. 将终端编码设置为 UTF-8 编码。可以通过修改终端配置文件或者设置 LANG 环境变量来实现。

$ export LANG=en_US.UTF-8

  1. 将 Oracle 自带的 sqlplus 程序设置为 UTF-8 编码。可以通过修改 sqlplus 配置文件 glogin.sql 来实现。找到 glogin.sql 文件并修改为以下内容:

    sql
    set sqlprompt ""
    set sqlprompt '_USER "@_CONNECT_IDENTIFIER > " '
    SET LINESIZE 1024
    SET EDITOR vim
    SET TERM UTF-8

    修改完成后,保存 glogin.sql 文件并重新启动 sqlplus,即可正常使用方向键。

示例

下面给出两个示例说明:

示例一:设置 ORACLE_HOME 环境变量

安装 Oracle 数据库后,打开终端连接数据库时,出现以下提示:

$ sqlplus scott/tiger
Error 6 initializing SQL*Plus
Message file sp1<lang>.msb not found

发现没有设置环境变量,因此需要设置 ORACLE_HOME

首先,找到 Oracle 的安装目录 /u01/app/oracle/product/11.2.0/db_1/,设置 ORACLE_HOMELD_LIBRARY_PATH 环境变量。

$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1/
$ export LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib/

然后,将 sqlplus 命令加入到 PATH 环境变量中。

$ export PATH=$PATH:/u01/app/oracle/product/11.2.0/db_1/bin/

再次运行 sqlplus 命令,即可连接到数据库。

示例二:设置 glogin.sql

在使用 sqlplus 时,发现使用方向键会出现乱码。

首先,找到 glogin.sql 文件所在位置。可以通过以下命令查询:

$ sqlplus /nolog
SQL> SHOW USER
SQL> SELECT * FROM dba_directories WHERE directory_name='SQLPATH';

找到 glogin.sql 文件后,修改为以下内容:

set sqlprompt ""
set sqlprompt '_USER "@_CONNECT_IDENTIFIER > " '
SET LINESIZE 1024
SET EDITOR vim
SET TERM UTF-8

保存 glogin.sql 文件,并重新启动 sqlplus。使用方向键时,即可正常显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle数据库使用sqlplus时的连接错误与方向键乱码解决 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • mysql中使用sql命令将时间戳解析成datetime类型存入

    将时间戳解析成datetime类型存入MySQL,具体步骤如下: 1.确定数据表结构 首先,我们需要确定需要存储时间戳的数据表结构,以及将时间戳解析成datetime类型的目标列。 例如,假设我们要创建一个名为user的数据表,包含如下字段: CREATE TABLE user ( id INT PRIMARY KEY, name VARCHAR(50), …

    database 2023年5月22日
    00
  • MySql关于null的函数使用分享

    MySQL关于NULL的函数使用是MySQL数据库操作中必不可少的一部分。在数据库中,NULL表示未定义和未知的值,因此MySQL提供了许多函数以便于操作包含NULL值的数据。下面是MySQL关于NULL的函数使用的完整攻略和两条示例说明。 COALESCE函数 COALESCE函数返回参数列表中第一个非NULL值,如果所有参数都为NULL,则返回NULL。…

    database 2023年5月22日
    00
  • 浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)

    浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户) 什么是vsftpd? vsftpd(Very Secure FTP Daemon)是一款免费的FTP服务器软件,是目前用得最广泛、最受欢迎的 Linux FTP 服务器软件之一。 vsftpd服务配置 在Linux中,配置vsftpd服务一般需要以下步骤: 安装vsftpd软件包 配置vsftpd…

    database 2023年5月22日
    00
  • Redis 存储中文方式

    有时,特殊的一些业务需求,我们会为了方便的情况下,使用中文作为key,正常情况下 ,取数据不会有问题,但是难免会有的时候由于编码格式不一样,而导致取不到数据,这个时候,就需要我们对存储的key做一个特殊的处理。这里我选择使用base64编码处理这种情况。 <!– https://mvnrepository.com/artifact/commons-c…

    Redis 2023年4月11日
    00
  • mysql8.0 my.ini 如何永久修改时区

    以下是关于“mysql8.0 my.ini 如何永久修改时区”完整攻略。 一、查看当前时区 在修改时区之前,我们需要先查看当前的时区设置。可以通过执行以下SQL语句来查看: SELECT @@global.time_zone, @@session.time_zone; 执行上述语句后,会出现两列结果,第一列时”system”,第二列为”+00:00″。这代表…

    database 2023年5月22日
    00
  • Linux查看和关闭后台运行程序的方法

    Linux查看和关闭后台运行程序的方法 在Linux中,有时我们需要在后台运行一些程序,这样不仅可以节省资源,还可以让我们继续进行其他操作。然而,当我们要查看某个后台运行的程序的状态或者关闭它时,我们就需要掌握一些技巧了。下面是关于如何查看和关闭后台运行程序的方法。 查看后台运行程序的方法 使用ps命令可以查看当前系统中运行的进程信息。常用的一些选项如下: …

    database 2023年5月22日
    00
  • mysql存储过程之if语句用法实例详解

    MySQL存储过程之if语句用法实例详解 MySQL存储过程是在MySQL数据库中定义的一组操作,这些操作可以封装为一个单元,并被多次调用。if语句作为一种常见的流程控制语句,在MySQL存储过程中也有着广泛的用法,本文将详细讲解MySQL存储过程中if语句的用法,以及实例说明。 if语句的语法 if语句的基本语法如下: IF condition THEN …

    database 2023年5月22日
    00
  • Redis缓存的主要异常及解决方案

    作者:京东物流 陈昌浩 1 导读 Redis 是当前最流行的 NoSQL数据库。Redis主要用来做缓存使用,在提高数据查询效率、保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能。当然在使用过程中,也会出现一些异常情景,导致Redis失去缓存作用。 2 异常类型 异常主要有 缓存雪崩 缓存穿透 缓存击穿。 2.1 缓存雪崩 2.1.1 现象 缓存…

    Redis 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部