使用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. 浅谈iOS开发的协议(protocol)和代理(delegate)

    协议和代理对于一个新手来说确实不讨好理解,也有很多的iOS开发的老手对此是懂非懂的.网上的很多博文只是讲了怎么使用,并没有说的很明白.下面我谈一下我的理解. 1.你要先搞明白,协议和代理为什么会出现, ...

  2. Linux Bash环境下单引(')、双引号(")、反引号(`)、反斜杠(\)的小结

    在bash中,$.*.?.[.].’.”.`.\.有特殊的含义.类似于编译器的预编译过程,bash在扫描命令行的过程中,会在文本层次上,优先解释所有的特殊字符,之后对转换完成的新命令行,进行内核的系统 ...

  3. 完全背包的变形POJ1252

    话说今天做背包做到有点累了,题目是英文的--而且还很长,我看了好久(弱爆了). 题目大概的意思就是,有六种硬币,之后,求用这六种硬币最小数目支付1到100美分的平均值,以及最小数目中的最大值. 很容易 ...

  4. SVM(支持向量机)算法

    第一步.初步了解SVM 1.0.什么是支持向量机SVM 要明白什么是SVM,便得从分类说起. 分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),而支持向 ...

  5. gpload的简单实用

    准备工作: 1.因为gpload是对gpfdist的封装,因此使用gpload之前必须开启gpfdist的服务,不然无法使用. gpfdist -d /home/admin -p 8181 -l /t ...

  6. (三)跟我一起玩Linux网络服务:DHCP服务配置之主服务器配置

    我们今天来做DHCP服务器的配置,我们的前提示要实现用一台虚拟机做DHCP服务器 1.首先,我们要有DHCP软件,我们用到下面两个软件(可以使用其他方法从网上直接安装,具体方法网络搜索) dhcp-3 ...

  7. django添加静态文件

    最近做了一个todolist webapp,需要稍微添加css时候又忘记django的添加方法了,查看了以前的项目才想起来,所以记录一下. 1.settings.py 将以下代码放到最下面 STATI ...

  8. Centos6.5最小化安装:配置网络和自启动服务

    参考http://www.111cn.net/sys/CentOS/56456.htm 1.开启网络连接,禁止IPV6启用 1.开启网络连接 vi  /etc/sysconfig/network-sc ...

  9. secureCRT使用小贴士

    (一)使用WIN键盘 在securecrt界面:工具→键映射编辑器,在弹出的键盘中点击“home”,会弹出一个窗口,在“发送字符串”中输入:\033[1~ 另存为securecrt安装根目录下的Key ...

  10. OC语言-03NSString

    /* 1. @"kite" 这是一个OC字符串,OC的字符串也是一个对象, 由NSString类(继承于NSObject) 创建 2. 输出时使用 %@ 3. 对象方法 [对象名 ...