You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL Plus中+操作符默认转字符为数字,为何'1'+'2'输出3而非12?

Oracle中+操作符为何不做字符串拼接?

在Oracle SQL里,+是专属的算术加法运算符,没有字符串拼接的功能。当你执行select '1' + '2' from dual时,Oracle会自动触发隐式类型转换:把两个字符串形式的数字转换成数值类型,再执行算术加法运算,所以最终得到数字3,而非拼接后的字符串12。

如果需要实现字符串拼接,Oracle提供了两种标准方式:

  • 使用||拼接运算符:
    select '1' || '2' from dual;
    
    执行后会返回预期的12。
  • 使用CONCAT()内置函数:
    select concat('1', '2') from dual;
    
    同样能得到字符串拼接结果。

要注意的是,不同数据库的SQL语法存在方言差异,比如SQL Server支持用+做字符串拼接,但Oracle遵循自己的语法规则,不会把+用作拼接符。

内容的提问来源于stack exchange,提问作者Intekhab Alam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:59:56