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

如何用SELECT查询Oracle SQL内置函数(如count、avg、sum)及其参数?

查询Oracle SQL内置函数(如COUNT、SUM)及其参数的正确方法

Oracle的SQL内置聚合函数(如COUNT、SUM)并不存储在all_procedures或all_arguments这类视图中——这些视图主要记录用户自定义PL/SQL对象、Oracle PL/SQL包(比如STANDARD包)中的程序单元,而SQL层面的内置函数属于数据库核心SQL引擎的一部分,需要通过专门的系统视图查询。

正确查询语句

使用v$sqlfn_metadata视图可以直接获取SQL内置函数的名称、参数类型和返回类型:

SELECT name, argument_types, return_type
FROM v$sqlfn_metadata
WHERE name IN ('SUM', 'COUNT')
ORDER BY name;
  • name:函数名称
  • argument_types:参数类型列表(逗号分隔,*表示可变参数或兼容任意类型)
  • return_type:函数返回类型

如果要查看所有SQL内置函数,直接去掉WHERE条件即可:

SELECT name, argument_types, return_type
FROM v$sqlfn_metadata
ORDER BY name;

为什么之前的语句无效

  1. all_procedures中object_name='STANDARD'对应的是PL/SQL的STANDARD包,里面是PL/SQL内置函数(比如UPPER、LOWER这类同时支持PL/SQL的函数),但SUM、COUNT这类纯SQL聚合函数不在其中。
  2. 直接查询procedure_name like 'SUM'找不到结果,因为SUM不属于存储过程/PL/SQL函数范畴,不在all_procedures的记录里。
  3. all_arguments同样只记录PL/SQL程序单元的参数,无法获取SQL内置函数的参数信息。

内容的提问来源于stack exchange,提问作者Andrea Meleková

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:59:50