使用SecureCRT或是pietty_ch连接到一台安装有Oracle DB 10g的RHEL4.2的机器,linux使用的shell是默认的bash。

  在bash提示符下,使用Del键或者Backspace键都能删除光标左右的字符,但是一旦进入sqlplus之后,只能使用Del键来删除光标左
侧的字符,使用Backspace键则显示^H,使用ctrl+H也能删除字符。如果要在sqlplus下仅仅使用Backspace来删除字符,那么有
两种方法:

  第一种是使用stty命令重新定义^H,可以在使用sqlplus之前执行stty erase ^H,也可以把这一句放到Linux用户的.bash_profile文件中。修改后必须执行 . .bash_profile使用命令生效。

  第二种是使用SecureCRT的设置,在会话属性的Terminal->Emulation->Mapped
Keys中,选中Backspace sends delete或Delete sends backspace中的任何一个,并确保另一个不被选中。

  此二种方法即可解决backspace出现乱码问题。

 
 另一个问题是bash下的sqlplus中使用上下箭头无法显示上一个和下一个命令,而只是显示^[[A。为便于复制可以在SecureCRT中进行设
置,在Global Options->Terminal的Mouse部分,选中Copy on select,并设置Paste on
middle(right) button。

但是这样依然只能显示最近的一条命令,而不能显示更多的历史命令。在Linux下如果需要实现上下翻阅命令的话需要安装其他的工具,rlwrap就是一个。

  rlwrap 的安装使用[SQL中上下键使用

  今天在论坛上看到了rlwrap工具,感觉很好,我把总结发一下。

  在
Windows操作系统上,当在DOS命令窗口中运行SQL*Plus的时候,可以使用向上,向下键来跳回之前已经执行过的SQL语句.你可以根据需要修
改他们,然后按Enter键重新提交执行. 然而,当在Linux Shell中运行SQL*Plus的时候,并不提供浏览历史命令行的功能.
为了在Linux中达到同样的目的,你可以安装rlwrap,这个程式本身是个Shell,可以运行任何你提供给它的命令包括参数,并添加命令历史浏览功
能.The
rlwrap program is under the GPL license.

  一:安装readline

  OS的安装光盘里提供了readline包(在安装包的centos/rpms目录下,有两个以readline开头的包).

  [root@oracle11g ~]# rpm -Uvh readline*

  error: Failed dependencies: libtermcap-devel is needed by readline-devel-5.1-1.1.i386.rpm

  [root@oracle11g ~]# rpm -Uvh libtermcap-devel-2.0.8-46.1.i386.rpm

  [root@oracle11g ~]# rpm -Uvh readline*

  package readline-5.1-1.1 is already installed

  [root@oracle11g ~]# rpm -Uvh readline-devel-5.1-1.1.i386.rpm

  二:安装rlwrap

  Download:http://utopia.knoware.nl/~hlub/uck/rlwrap/

  [root@oracle11g ~]# tar -zxvf rlwrap-0.30.tar.gz

  [root@oracle11g ~]# cd rlwrap-0.30

  [root@oracle11g rlwrap-0.30]# ./configure

  [root@oracle11g rlwrap-0.30]# make

  [root@oracle11g rlwrap-0.30]# make install

  [root@oracle11g rlwrap-0.30]# rlwrap

  Usage: rlwrap [options] command ...

  Options:

  -a[password:] --always-readline[=password:]

  -A --ansi-colour-aware

  -b <chars> --break-chars=<chars>

  -c --complete-filenames

  -C <name|N> --command-name=<name|N>

  -D <0|1|2> --history-no-dupes=<0|1|2>

  -f <completion list> --file=<completion list>

  -F <format string> --history-format=<format string>

  -h --help

  -H <file> --history-filename=<file>

  -i --case-insensitive

  -l <file> --logfile=<file>

  -n --no-warnings

  -p[ANSI colour spec] --prompt-colour[=ANSI colour spec]

  -P <input> --pre-given=<input>

  -q <chars> --quote-characters=<chars>

  -m[newline substitute] --multi-line[=newline substitute]

  -r --remember

  -v --version

  -s <N> --histsize=<N> (negative: readonly)

  -t <name> --set-term-name=<name>

  bug reports, suggestions, updates:

  http://utopia.knoware.nl/~hlub/uck/rlwrap/

  [root@oracle11g rlwrap-0.30]# vi /home/oracle/.bash_profile(该文件

  在你所安装的oracle目录下可找到。

  alias sqlplus='rlwrap sqlplus'

  alias rman='rlwrap rman'

  三:使用rlwrap

  [oracle@oracle11g ~]$ sqlplus / as sysdba

  SQL*Plus: Release 11.1.0.6.0 - Production on Tue Jul 29 21:28:30 2008

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

  Connected to:

  Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

  With the Partitioning, OLAP, Data Mining and Real Application Testing options

  SQL> select * from v$sga;

  NAME VALUE

  -------------------- ----------

  Fixed Size 1299116

  Variable Size 155192660

  Database Buffers 79691776

  Redo Buffers 2347008

  使用向上键调回最后执行的命令,按Enter键重新执行或修改后按Enter键执行.

  SQL> select * from v$sga;

  NAME VALUE

  -------------------- ----------

  Fixed Size 1299116

  Variable Size 155192660

  Database Buffers 79691776

  Redo Buffers 2347008

  SQL>

  Notes:

  解决在sqlplus下输错命令后正常删除的方法

  [oracle@oracle11g ~]$ vi /home/oracle/.bash_profile

  添加stty erase ^h

sqlplus乱码的更多相关文章

  1. NLS_LANG引起的SQLPLUS乱码和length长度不正确.

    创建一个实验表语句如下 SQL> create table test(id number,name varchar2(10)); 当我们在SQLPLUS里面敲入下面的语句并回车执行的时候,SQL ...

  2. linux oracle sqlplus中文乱码解决

    在oracle用户的~/.bash_profile中添加 NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16GBKexport NLS_LANG 然 ...

  3. Oracle数据库在plsql中文乱码,显示问号????

    1.错误显示结果: 2.错误的原因: SqlPlus乱码与操作系统用户中的NLS_LANG这个环境变量有关系,如果这个与数据库字符集不一致的话就会产生乱码 3.解决方法1:(配置环境变量) 1.sel ...

  4. Oracle12c在Win10上的安装配置实践

    1.环境 操作系统:Win10专业版(64位) 数据库:Oracle 12c Release 2(Version 12.2.0.1.0,64位) 2.下载Oracle12c oracle官网下载地址: ...

  5. 一日一句 SQL [持续更新] MySQL + Oracle

    1 . group by 和 having字句: group by是根据列值对数据进行分组, having子句用于对分组的数据进行过滤. [ having 针对的对象是分好的组] eg: employ ...

  6. Oracle11g安装步骤

    plsql安装等:https://blog.csdn.net/li66934791/article/details/83856225      https://www.cnblogs.com/gaoz ...

  7. java web 学习十(HttpServletRequest对象1)

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  8. (转)sqlplus中文显示乱码的问题

    sqlplus中文显示乱码的问题 2010-07-19 11:33:26 分类: LINUX 在windows下sqlplus完全正常,可是到linux下,sqlplus中文显示就出问题了,总是显示“ ...

  9. Windows转到linux中,文件乱码,文件编码转换 & 解决sqlplus连接oracle乱码

    转载:http://www.cnblogs.com/wanyao/p/3399269.html 最近,学习又重新开始Linux学习,所以一直在Centos中,昨天一朋友把他在Windows下写的C程序 ...

随机推荐

  1. C#中检查网络是否连通的二种方法

    using System;  2 using System.Collections.Generic;  3 using System.Text;  4 //方法一  5 using System.Ru ...

  2. LuaNode 开源库

    受CJSON库的启发,用C++实现解析Lua文件的库. 整个库大概800行代码,因为新鲜出炉,所以有些潜在问题尚未发现. 截图中包含使用例子. 以下接口清单: LuaNode(); LuaNode(c ...

  3. 中文翻译:pjsip教程(三)之ICE stream transport的使用

    1:pjsip教程(一)之PJNATH简介 2:pjsip教程(二)之ICE穿越打洞:Interactive Connectivity Establishment简介 3:pjsip教程(三)之ICE ...

  4. Object layout in C++ and access control

    The variables are guaranteed to be laid out contiguously, as in C. However, the access blocks may no ...

  5. sec:authorize 标签 通过不通过权限例子

    1. 方式一     <sec:authorize ifAnyGranted="ROLE_A">     <a href="a.jsp"> ...

  6. Warning File `.depend' has modification time 1.6 s in the future

    一.前提知识 主机时间与虚拟机时间不同步所致.我们在某一操作系统所属磁盘空间下创建一个文件,那么这个文件的创建时间是以磁盘所属的操作系统的时钟为基准的. 我们假设主机windows的系统时间是10:0 ...

  7. info.plist 属性讲解

    1 常用项: Application requires iPhone environment:如果应用程序不能在ipodtouch上运行,设置此项为true; Application usesWi-F ...

  8. Java客户端协议处理框架简介

    无论FTP客户程序,还是HTTP客户程序,或是其他基于特定应用层协议的客户程序,在与远程服务器通信时,都需要建立与远程服务器的连接,然后发送和接收与协议相符的数据.客户程序还需要对服务器发送的数据进行 ...

  9. 常见排序算法(JS版)

    常见排序算法(JS版)包括: 内置排序,冒泡排序,选择排序,插入排序,希尔排序,快速排序(递归 & 堆栈),归并排序,堆排序,以及分析每种排序算法的执行时间. index.html <! ...

  10. 初识Vim

    在Windows系统安装Vim后桌面上会添加gVim.gVim Easy.gVim Read-only 三个快捷方式. gVim 指向主程序,gVim Easy.gVim Read-only 也是,但 ...