Oracle插入特殊字符&导致后面的字符被替换问题解决

在PL/SQL中默认的"&"表示替代变量。
这就意味着你无法将一个含有该符号的字符串输入数据库或赋给变量。
我在保存图标的字符串“& #xe616;”时就跳出了让我赋值的页面:
Oracle插入特殊字符&导致后面的字符被替换问题解决

解决办法:

  • 方法一:set define off set define off 则关闭该功能,"&“将作为普通字符,如上例,最终字符就为“& #xe616;”
    set define off关闭替代变量功能
    set define on 开启替代变量功能
    set define * 将默认替代变量标志符该为”*"(也可以设为其它字符)
  • 方法二:在SQL语句中将’&‘替换成chr(38),因为chr(38)是’&'的ASCII码 SQL> Select ‘Tom’ || chr(38) || ‘Jerry’ from dual;
  • 方法三:分拆原来的字符串 SQL> Select ‘Tom’ || ‘&’ || ‘Jerry’ from dual;
  • 方法四:Oracle还支持使用CONCAT()函数进行字符串拼接;