问题描述
在使用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 * 将默认替代变量标志符改为“*”(也可以设为其它字符)。


5083

被折叠的 条评论
为什么被折叠?



