Linux下Oracle中SqlPlus时上下左右键乱码问题的解决办法

window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便。

但是在Linux下,会出现各种乱码,非常不方便,如下图所示,每次打错一个字符就需要重新打一遍。

解决办法:rlwrap 可以用来支持Oracle下sqlplus历史命令的回调功能,提高效率。

解决过程:

1、首先下载rlwrap和readline;

 readline-6.3.tar.gz
   rlwrap-0.30.tar.gz

2、安装readline包

tar -zxvf readline-6.3.tar.gz
   cd readline-6.3
   ./configure
   make
   make install

3、安装rlwrap

tar -zxvf rlwrap-0.30.tar.gz
  cd rlwrap-0.30
  ./configure

   出现问题:You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build this program!

  解决办法:yum install readline*,执行后出现如下问题

Error Downloading Packages:
  readline-static-6.0-4.el6.x86_64: failure: Packages/readline-static-6.0-4.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
  ncurses-libs-5.7-4.20090207.el6.x86_64: failure: Packages/ncurses-libs-5.7-4.20090207.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
  readline-devel-6.0-4.el6.x86_64: failure: Packages/readline-devel-6.0-4.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
  ncurses-devel-5.7-4.20090207.el6.x86_64: failure: Packages/ncurses-devel-5.7-4.20090207.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
  ncurses-base-5.7-4.20090207.el6.x86_64: failure: Packages/ncurses-base-5.7-4.20090207.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try.

如果这些包安装失败,可以到官网上找这些包下载独立安装,安装无误后,在一次尝试:

可以从这个网址进行下载 ,包很全:   http://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/    (需要翻墙)

  安装下载的依赖包:

rpm -ivh  --force readline-static-6.0-4.el6.x86_64.rpm  ncurses-libs-5.7-4.20090207.el6.x86_64.rpm readline-devel-6.0-4.el6.x86_64.rpm  ncurses-devel-5.7-4.20090207.el6.x86_64.rpm  ncurses-base-5.7-4.20090207.el6.x86_64.rpm

然后再尝试安装rlwrap:

./configure
make
make install

使用方法:

1、首先配置一些信息,在oracle用户下的.bash_profile中添加以下信息:

alias sqlplus='/usr/local/rlwrap/bin/rlwrap sqlplus'  (添加命令)
  alias sqlplus='rlwrap sqlplus'       (去除每次都需要输入rlwrap的麻烦)
  alias rman='rlwrap rman'

2、source  .bash_profile 后就可以使用了

以上所述是小编给大家介绍的Linux下Oracle中SqlPlus时上下左右键乱码问题的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Windows server 2008 R2(win7)登陆sqlplus错误ORA-12560和ORA-12557的解决方法

    Windows server 2008 R2(win7)登陆sqlplus错误:ORA-12560和ORA-12557,错误截图如下: 问题情景描述1:Windows系统只安装oracle11g,未安装client,此时在cmd不能登陆sqlplus. 解决方法: (1)查看注册表是否含有ORACLE_SID=xxxx,(xxxx代表实例名,一般安装默认是orcl),         ORACLE_HOME=E:\oracle\product\11.2.0\dbhome_1 (注:E:\orac

  • Linux中Oracle的sqlplus下退格和Del键无效的问题解决

    PS:近来因工作需要业余在学习oracle,发现通过SecureCRT或putty等SSH客户端远程登录Linux下oracle的sqplus时,输错字符后按Backspace键或Del键删除时,会出现^H或其他乱七八糟的的字符,感觉非常别扭不习惯,虽然可以通过Ctrl+Backspace组合键实现删除功能,但是严重影响使用效率.google了一番,终于完美解决此问题.总结记录如下,本文是此问题最完整的总结: 乱七八糟的字符如图: 一.SecureCRT终端里的解决方法:(不完美) 在Secur

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

    连接错误 安装好以后,我登录企业后台(http://ubuntu:1158/em)报错,用sqlplus连接oracle也报错. 一,遇到的错误如下 1,ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach) 2,ORA-28547: connection to server failed, probable Oracle Net

  • Linux下Oracle中SqlPlus时上下左右键乱码问题的解决办法

    window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便. 但是在Linux下,会出现各种乱码,非常不方便,如下图所示,每次打错一个字符就需要重新打一遍. 解决办法:rlwrap 可以用来支持Oracle下sqlplus历史命令的回调功能,提高效率. 解决过程: 1.首先下载rlwrap和readline: readline-6.3.tar.gz rlwrap-0.30.tar.gz 2.安装readline包 tar -zxvf readline-6.3.tar.gz c

  • jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法

    序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 例如: var params = jQuery("#formId").serialize(); // http request parameters. params = deco

  • Linux下进行MYSQL编程时插入中文乱码的解决方案

    插入中文是乱码,尝试了许多方法,比如我先把vim里设置为:set fileencoding=utf-8不起作用,后来想想也对,和vim没什么关系 然后就尝试c#代码,用Encoding.UTF8.GetString()方法,后来也不对. 我就郁闷了,忽然想起来莫不是mysql的设置问题??? 于是,sudo nano /etc/mysql/my.cnf 插入下面红色代码,default-character-set = utf8,成功,不乱码了~~~根本不用什么Encoding..... # Th

  • 解决Linux下Tomcat向MySQL插入数据中文乱码问题

    一.问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二.解决办法 1.尝试一 直接在linux上面使用insert语句插入中文,正常 2.尝试二 在tomcat配置文件server.xml中加入useBodyEncodingForURI="true",不行 3.尝试三 在tomcat配置文件server.xml中再加入URIEncoding="UTF-8",不行 4.尝

  • Linux下Oracle删除用户和表空间的方法

    本文实例讲述了Linux下Oracle删除用户和表空间的方法.分享给大家供大家参考,具体如下: 1.删除某个用户 SQL> conn /as sysdba Connected. SQL> drop user userName cascade; 用户已删除 如果用户无法删除,并报错: ERROR at line 1: ORA-01940: cannot drop a user that is currently connected 通过查看用户的进行,并kill用户进程,然后删除用户. SQL&

  • oracle 中 sqlplus命令大全

    1.简介: Oracle的sql*plus是与oracle进行交互的客户端工具.在sqlplus中,可以运行sqlplus命令与sqlplus语句,我们通常所说的DML.DDL.DCL语句都是sqlplus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sqlplus一般都与数据库打交道. 2.常用命令 sqlplus username/password

  • Linux下Oracle设置定时任务备份数据库的教程

    1.查看数据库的字符集 数据库的字符集必须和Linux下设置的环境变量一致,不然会有乱码. 以下两个sql语句都可以查到: select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'; select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; 查询结果为:NLS_CHARACTERSET AL32UTF8 2. 用oracle用

  • LINUX下Oracle数据导入导出的方法详解

    本文讲述了LINUX下Oracle数据导入导出的方法.分享给大家供大家参考,具体如下: 一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移   它有三种模式: a.  用户模式: 导出用户所有对象以及对象中的数据: b.  表模式: 导出用户所有表或者指定的表: c.  整个数据库: 导出数据库中所有对象. 2. 导出工具exp交互式命令行方式的使用的例子: $ex

  • LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2)首先要打开监听器命令如下:lsnrctl start,然后sqlplus /nolog ,然后conn /as sysdba,然后startup(这一部分命令是用来打开oracle数据库) 3)查看我们常规将用户表空间放置的位置:执行如下sql: SQL> select

  • oracle中添加删除主键的方法

    1.创建表的同时创建主键约束 (1)无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int); (2)有命名 create table students ( studentid int , studentname varchar(8), age int, constraint yy primary key(studentid)); 2.删除表中已有的主键约束 (1

随机推荐