ORA-30488: argument should be a function of expressions in PARTITION BY
Cause: The argument of the window function should be a constant for a partition.
Action: None
。
ORA-30488是一个参数错误,表示参数不符合PARTITION BY期望的用法,PARTITION BY不接受常量或定义函数,只接受由一个表达式组成的函数,或者一组表达式组成的函数。
1、选择某张表的数据,使用根据按照字段分组的 PARTITION BY 时,出现下面的错误:
SELECT * from table1 GROUP BY partition by col1
ORA-30488: argument should be a function of expressions in PARTITION BY
2、当使用如下语句时,可能会出现ORA-30488错误:
SELECT * FROM table1 PARTITION BY col1
ORA-30488: argument should be a function of expressions in PARTITION BY
1、修正语句:当收到ORA-30488错误时,首先要确保PARTITION BY使用正确的语法,即只能使用表达式组成的函数,而不能是常量或定义函数。例如上面示例中第一个例子,正确的语句应该是:
SELECT * from table1 GROUP BY col1
2、考虑使用表达式:您还可以考虑使用表达式来替换PARTITION BY函数中的参数。例如,第二个示例中,您可以替换PARTITION BY的参数为表达式,如下所示:
SELECT * FROM table1 PARTITION BY trunc(col1)