sqlplus乱码

使用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开头的包). 

  [[email protected]
~]# rpm -Uvh readline* 


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


  [[email protected]
~]# rpm -Uvh libtermcap-devel-2.0.8-46.1.i386.rpm 


  [[email protected]
~]# rpm -Uvh readline* 


  package
readline-5.1-1.1 is already installed 


  [[email protected]
~]# rpm -Uvh readline-devel-5.1-1.1.i386.rpm 


  二:安装rlwrap 

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

  [[email protected]
~]# tar -zxvf rlwrap-0.30.tar.gz 


  [[email protected]
~]# cd rlwrap-0.30 


  [[email protected]
rlwrap-0.30]# ./configure 


  [[email protected]
rlwrap-0.30]# make 


  [[email protected]
rlwrap-0.30]# make install 


  [[email protected]
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/ 

  [[email protected]
rlwrap-0.30]# vi /home/oracle/.bash_profile(该文件 


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

  alias
sqlplus=‘rlwrap sqlplus‘ 


  alias
rman=‘rlwrap rman‘ 


  三:使用rlwrap 

  [[email protected]
~]$ 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下输错命令后正常删除的方法 

  [[email protected]
~]$ vi /home/oracle/.bash_profile 


  添加stty
erase ^h

sqlplus乱码,布布扣,bubuko.com

时间: 2024-10-16 23:07:20

sqlplus乱码的相关文章

在redhat linux 6.0上面安装rlwrap解决sqlplus乱码问题

在linux系统里面一旦在bash里面进入sqlplus或者rman后按上下左右键会出现乱码,不能像window命令行一样按左右键可以随意调整代码,按上下键可以直接选择已经执行过的命令.有一个很好的解决方案,就是安装rlwrap软件包实现这个本来没有的功能.下面是安装过程. 1.首先下载rlwrap安装包 http://utopia.knoware.nl/~hlub/uck/rlwrap/ 2.解压 $ tar -zxvf rlwrap-0.37.tar.gz 3.安装前提 安装readline

Linux下SQLPlus中文乱码处理

1.首先查询数据库字符集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 SQL> exit 从上面得知数据库字符集为AMERICAN_AMERICA.AL32UTF8 2.配置环境变量 echo 'export NLS_LANG="AMERICAN_

linux oracle sqlplus中文乱码解决

在oracle用户的~/.bash_profile中添加 NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16GBKexport NLS_LANG 然后保存退出, source ~/.bash_profile 再次登录sqlplus乱码就没了. 注意:NLS_LANG的具体值要根据你的数据库实例的实际编码修改,一般情况下中文应该都是"SIMPLIFIED CHINESE"_CHINA.ZHS16GBK,具体怎么查询数据库的编码参考下面链

ORACLE 在 SQLPLUS 与 PL/SQL 中显示乱码的问题

Linux下SQLPlus中文乱码处理的方法 1.首先查询数据库字符集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 SQL> exit 从上面得知数据库字符集为 AMERICAN_AMERICA.AL32UTF8 2.配置环境变量 echo 'export

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

1.错误显示结果: 2.错误的原因: SqlPlus乱码与操作系统用户中的NLS_LANG这个环境变量有关系,如果这个与数据库字符集不一致的话就会产生乱码 3.解决方法1:(配置环境变量) 1.select userenv('language') from dual; 2.select * from V$NLS_PARAMETERS;//第一个值是否为中文 3.设置系统环境变量变量名:NLS_LANG    变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 4.解决方法

Oracle Sqlplus中上下键出现^[[A乱码问题

安装rlwrap 下载:http://utopia.knoware.nl/~hlub/uck/rlwrap/ 或者 百度云盘:http://pan.baidu.com/s/1ntM8YXr 需要先安装readline,否则会报一下错误:You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build this program! 如下: [[email protected] ~]# cd /opt/ [[ema

sqlplus中文乱码的问题

今天在sqlplus测试时遇到了中文乱码的问题,说到乱码的问题最先想到的就是字符集不一致的问题. 问题描述:登陆时因为密码输入错误引起错误,但是显示结果是乱码. 2.上网查看相关资料之后,需要设置NLS_LANG,使其与oracle服务器端的字符集保持一致. [[email protected] ~]$ echo $NLS_LANG AMERICAN_AMERICA.ZHS16GBK SQL> col parameter for a30 SQL> col value for a30 SQL&g

linux中的sqlplus显示乱码和方向键解决办法

linux中的sqlplus显示乱码解决办法 1.临时解决: export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 2.永久生效 echo 'export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"'>>/etc/profile linux中的sqlplus退格和方向键的显示问题解决办法 stty erase ^H echo 'stty erase ^H'&g

X-manager下使用sqlplus退格乱码解决

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/45875793 在使用xmanager远程连接linux系统后,使用sqlplus时发现,删除键都是乱码,如下: 解决方法: 方法一: [[email protected] ~]# vi .bash_profile --添加stty erase ^H # .bash_pro