当前位置: 首页 > 编程笔记 >

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

云季同
2023-03-14
本文向大家介绍Linux中Oracle的sqlplus下退格和Del键无效的问题解决,包括了Linux中Oracle的sqlplus下退格和Del键无效的问题解决的使用技巧和注意事项,需要的朋友参考一下

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

乱七八糟的字符如图:

一、SecureCRT终端里的解决方法:(不完美)

在SecureCRT终端里,如果要在sqlplus下使用Backspace来删除字符,有两种临时方法。

第一种是使用stty命令重新定义^H,可以在使用sqlplus之前执行stty erase ^H,也可以把这一句放到oracle用户的.bash_profile文件里。

stty命令简介:
Unix或者Linux中有个stty命令,它的作用是打印或更改terminal(终端)的设置。
常用参数:
-a --all 用人类可读表格,打印出所有现有设置
-g --save 用stty可读表格,打印出所有现有设置
--help 帮助
--version 版本

查看当前stty现有设置,如图:

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

另一个问题是bash shell下的sqlplus中使用上下箭头无法显示上下命令,而只是显示^[[A,这个问题可以安装rlwrap这个工具解决!

二、利用rlwrap工具解决方法:(完美)

1、安装rlwrap和readline库

CentOS下可以用EPEL的yum源直接安装,步骤如下:

(1)RHEL/CentOS/SL Linux 6.x 下安装 EPEL6 yum源:

32位系统选择:

# rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

64位系统选择:

# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

导入key:

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

默认会在/etc/yum.repos.d/下创建epel.repo和epel-testing.repo两个配置文件。

(2)安装rlwrap和readline:

# yum install rlwrap readline readline-devel

其他Linux发行版如果源里没有rlwrap和readline的(如SUSE企业版默认没有这两个包),要分别下载这两个源码包编译安装一下。

# wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
# tar zxvf readline-6.2.tar.gz
# cd readline-6.2/
# ./configure
# make
# make install


# wget http://utopia.knoware.nl/~hlub/rlwrap/rlwrap-0.37.tar.gz
# tar zxvf rlwrap-0.37.tar.gz
# cd rlwrap-0.37/
# ./configure
# make
# make install

(3)设置sqlplus的系统别名:

# vim /home/oracle/.bash_profile

在头部或尾部添加:

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

退出oracle用户再重新登录就ok。现在sqlplus用起来就很爽很习惯了!

 类似资料:
  • 本文向大家介绍解决layer.prompt无效的问题,包括了解决layer.prompt无效的问题的使用技巧和注意事项,需要的朋友参考一下 使用H-UI框架中的layer弹出层时发现 layer.js中没有layer.prompt,如果想要使用layer.prompt可以使用layer中的use从扩展中加载此扩展方法 代码如下: 之后就可以正常使用了。 以上这篇解决layer.prompt无效的问

  • 按如下步骤操作 使用root权限打开文件vimrc.tiny,命令如下: sudo vi /etc/vim/vimrc.tiny 编辑 (1)解决方向键变“ABCD”问题 将倒数第二句“set compatible”改为“set nocompatible” (2)解决删除键无效的问题 在“set nocompatible”后面增加一句“set backspace=2” 保存并退出,问题解决

  • 我正在使用javafx。场景控制TextFormatter,用于将textfield格式化为货币字段。下面显示了我的代码。 一切正常,只是我不能将整个文本字段退格。 任何帮助都是可观的。非常感谢。

  • 本文向大家介绍linux下mysql乱码问题的解决方案,包括了linux下mysql乱码问题的解决方案的使用技巧和注意事项,需要的朋友参考一下 项目进行到和服务器交互,通过post访问服务器端jsp,jsp访问服务器端mysql数据库,最终返回到客户端的中文出现乱码问题。 在整个流程中,出现错误的原因可能是三个:post未设置编码或者编码不相符合,jdbc出现问题,linux下mysql初始码制问

  • 问题内容: 我当前正在oracle中使用具有NLS_CHARACTERSET WE8ISO8859P1的数据库,因此可以说我在varchar2字段中存储了一个值为maž(带重音字符)的值,因此在数据库中将其存储为maå¾。现在,当我尝试使用查询select * from table从其中fieldValue =’maž’检索它时,它返回0行,然后当我尝试再次插入它时,它给了我一个约束错误,说值已经

  • 本文向大家介绍Linux下乱码问题的解决方案小结,包括了Linux下乱码问题的解决方案小结的使用技巧和注意事项,需要的朋友参考一下 linux系统中文件名内容为urf8编码, windows系统中文件名默认为gbk编码, 多数文档使用gbk编码,系统采用utf8编码 无中文输入法导致的乱码 1、ibus输入法 Ubuntu 系统安装后已经自带了ibus输入法,在英语环境下默认不启动。配置ibus自