ORA-00909: 参数数量无效

新手上路,请多包涵

也许我把括号弄错了或者逗号弄错了?我知道这是一个相当新手的问题,所以我提前道歉。我最初有这个代码:

 es3.last_name || ', ' ||SUBSTR(es3.first_name,1,1)

但是 es3 是一个左外连接,所以所有的空白都显示’,’所以我在下面尝试了这个并且得到了错误

ORA-00909: 参数数量无效

NVL(es3.last_name, ' ' , es3.last_name || ', ' ||SUBSTR(es3.first_name,1,1))

谢谢!

原文由 JD23 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

从文档中:

Oracle/PLSQL 中 NVL 函数的语法是:

NVL( string1, replace_with )

您正在为其提供 3 个参数,因此会出现错误消息。我相信你想要这个:

 CASE WHEN es3.last_name IS NULL
     THEN ''
     ELSE es3.last_name || ', ' ||SUBSTR(es3.first_name,1,1)
END

原文由 Aaron Dietz 发布,翻译遵循 CC BY-SA 4.0 许可协议

你必须只有两个参数

nvl 函数

就像 NVL(es3.last_name,'Özhan') 返回 Özhan 如果 es3.last_name 为空。

即问题源于有两个以上的论点。

在问题中有问题的部分是.. ' ' , .. in

NVL(es3.last_name, ' ' , es3.last_name || ‘, ’ ||SUBSTR(es3.first_name,1,1))

原文由 Barbaros Özhan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进