6

我收到这个警告:

ORA-24347: Warning of a NULL column in an aggregate function

在生产中使用 Oracle 的MAX()功能时。我正在使用 OCI 库连接到 Oracle 版本 11.2.0.2。

但是,在测试服务器上,这个错误不会出现。我以NULL可以将值传递给聚合函数的方式对查询进行了硬编码。我仍然无法重现此问题。

此警告是否与任何 Oracle 错误有关?谁能提供一些会引发此警告的示例查询?

编辑:

Table: EX_TABLE
Columns:
ID NOT NULL NUMBER
SOME_NUMBER NUMBER
MAX_VAL NUMBER

询问:

select MAX(DECODE(some_number,1,max_val,NULL)) val1
     , MAX(DECODE(some_number,2,max_val,NULL)) val2
     , MAX(DECODE(some_number,3,max_val,NULL)) val3 
  from EX_TABLE
4

1 回答 1

1

您应该使用 0 而不是 NULL 解码值;

select MAX(DECODE(some_number,1,max_val,0)) val1,
       MAX(DECODE(some_numer,2,max_val,0)) val2,
       MAX(DECODE(some_numer,3,max_val,0)) val3 
  from EX_TABLE
于 2012-08-02T06:32:53.223 回答