数据库插入数据包含“&”符号处理方法--set define off

问题描述

在使用ORACLE数据库插入数据时遇到一个问题,若插入数据中包含“&”符号,则在plsqldeveloper中会提示输入代替的VALUE值,导致无法成功插入数据。

原因分析

在SQLPlus中默认的"&"表示替代变量,所以若插入的值中出现该符号,SQLPlus就会要你输入替代值。
这可能导致无法将一个含有该符号的字符串插入数据库或赋给变量,比如字符串“SQL&Plus”就会被系统理解为以“SQL”打头的字符串,它会提示你输入替代变量 Plus的值,如果你输入ABC,则最终字符串转化为“SQLABC”。

可通过如下命令查看配置信息:

SQL> show define
define "&" (hex 26)
处理方法

这时候就需要使用 set define off 关闭默认字符转义。
具体操作如下:
1)连接数据库

# su - oracle
$ sqlplus 用户名/密码

2)执行命令

SQL> set define off

3)插入数据

SQL> insert into ......;
SQL> commit;
补充

set define off  关闭替代变量功能(“&”将作为普通字符);
set define on  开启替代变量功能;
set define *   将默认替代变量标志符改为“*”(也可以设为其它字符)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值