连接两个字符串的结果还是字符串. 如果2个字符串都是CHAR类型, 那么结果是限制长度为2000字符的CHAR类型字符串.
如果任一字符串是VARCHAR2类型, 结果是限制长度为4000字符的VARCHAR2类型字符串.
如果任一字苻串是CLOB类型, 结果是暂时的CLOB类型.
结尾空白在连接中会被保留, 数据类型是字符串还是CLOB.
在大多数平台, 连字符是两个实心竖线, 然而在一些IBM平台, 是两個断竖线, 当在使用不同字符集的系统中移动SQL脚本时, 竖线也许不会被转译成竖线 , 所以Oracle提供了CONCAT函数来作为替代以应对这种情况.
尽管Oracle将0长度的字苻串视为null, 连接0长度的字符串和另一个字符串会得出该字符串, 所以只有两端都是null字符串时会得到null字符串. 然而后续版本可能不会继续支持.
如果想要连接一个可能是null的表达式, 使用NVL函数来将表达式转换为0长度的字符串.
在使用MyBatis操作Oracle数据库的时候写模糊查询突然发现原本在MySql中正确的代码,在Oracle中报错参数个数无效
经过查阅数个资料后得知Oracle的CONCAT函数不像MySql那样支持三个参数的拼接,需要把SQL语呴修正为:
以上仅对Oracle有效!
基础真的非常重要!!
再简单的代码也要多敲几遍这样才“有可能“成为你的一部分”!
本文参与,欢迎正在阅读的你也加入一起分享。