使用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. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  2. linux du 显示目录下的各个子目录的大小

    use  command du  display estimate file space usage size of subdirectories [oracle@ahjcyl-db backup]$ ...

  3. CSS Text文本格式

    Text Color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如"#FF0000" 一个RGB值 - "RGB(255,0,0)& ...

  4. label语句和break continue的使用(高程第三章)

    break&&outermost var num = 0; outermost: for(var i=0;i<10;i++){ for(var j=0;j<10;j++){ ...

  5. 洛谷 U2878 小R的分数比赛(fraction)

    题目提供者 2015c07 标签 数论(数学相关) 高精度 难度 尚无评定 通过/提交 0/29 提交该题 记录 题目背景 P5难度系数:★★★☆☆ 小R再次挑战你. 这次的挑战又会是什么呢? 题目描 ...

  6. Windows phone 之Xml操作

    最近在做天气预报应用,这个应用中需要用到Xml来存储关注的城市列表,保存一下代码,方便以后使用,也给博友们一个参考: 其中:添加关注城市的操作代码是: 其实就是, (1)先把数据从CareCityCo ...

  7. SQL分页小Demo

    SELECT @TotalCount=count(1) FROM TableA A WITH(NOLOCK) INNER JOIN TableB B WITH(NOLOCK) ON A.Id=B.Id ...

  8. OSI 7层模型

    协议:电脑与电脑通信之间的一种“约定”ois模式1,物理层2. 数据链路层3. 网络层4. 传输层5. 会话层6. 表示层7. 应用层发email为例 应用层:从用户输入完成所要发送的内容并点击“发送 ...

  9. curl批处理从官方demo封装

    官方demo // 创建一对cURL资源 $ch1 = curl_init(); $ch2 = curl_init(); // 设置URL和相应的选项 curl_setopt($ch1, CURLOP ...

  10. InstallShield自定义图片资源

    DialogSetInfo ( nInfoType, szInfoString, nParameter );   nInfoType: DLG_INFO_ALTIMAGE-Specifies an a ...