oracle chr()(附常用字符与ascii对照表)
chr()函数将ASCII码转换为字符:字符 –》 ASCII码;
ascii()函数将字符转换为ASCII码:ASCII码 –》 字符;
select chr(39),chr(65),ascii('A') from dual;
Oracle里的这个chr()函数,很想JavaScript或者Java高级程序语言中处理特殊字符的转意字符“/”,最起码,当初设计者们的用意和对他们的功能的要求是一样的,就是为了处理这些特殊的函数,因为机器是死的,对于像&var_name这样的字符串,它没有办法理性机灵的分辨出它的主人是想插入这么个字符串,还是想作为一个字符串的占位符。
·方法1:在SQL语句中将'&'替换成chr(38),因为chr(38)是‘&’的ASCII码
SQL> Select 'Tom' || chr(38) || 'Jerry' from dual;
结果: Tom&Jerry
·方法2:分拆原来的字符串
SQL> Select 'Tom' || '&' || 'Jerry' from dual;
我们可以看到 方法1因为有一个调用函数的过程,所以性能稍差。
方法2需要两次连接字符串,效率最差!
其中,方法1,2大同小异,都是对特殊字符单独进行处理(加'或者chr(ascii))后,再用||连接其他字符。