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

使用标量函数编写SQL查询时遇ORA-00906错误求助

Oracle SQL查询错误修复方案

你的SQL报错是因为混用了其他数据库(如SQL Server)的函数,Oracle有自己的语法规范,以下是问题点和修正后的代码:

问题分析

  • Oracle没有len()函数,获取字符串长度要用length()
  • Oracle的concat()仅支持两个参数,多参数拼接建议用||运算符更直观
  • 字符串截取函数是substr(),而非substring()
  • 获取字符串后N位用substr(字段名, -N),无需right()函数
  • 类型转换时,Oracle的字符串类型为varchar2,不是varchar

修正后的SQL语句

方式一:使用||拼接(推荐,可读性更高)

select
    name,
    substr(name, 1, 2) || length(name) || substr(phno, -3) as USER_PASSWORD 
from 
    users
order by 
    name desc;

方式二:嵌套concat()函数

select
    name,
    concat(concat(substr(name, 1, 2), length(name)), substr(phno, -3)) as USER_PASSWORD 
from 
    users
order by 
    name desc;

说明:如果phno是数值类型,需要先转字符串,可修改为substr(to_char(phno), -3),避免截取时出现格式问题。

内容的提问来源于stack exchange,提问作者Arghadeep Dey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:35:45