文档解释
ORA-19172: FORG0008: both arguments to fn:dateTime have a specified timezone
Cause: An error occurred during the processing of the XQuery expression.
Action: Check the detailed error message for the possible causes.
官方解释
“ORA-19172: FORG0008 : 对 fn:dateTime 实参指定了多个时区”。
这意味着程序在向Oracle数据库执行语句时出现了错误,意思为该语句的日期时间参数定义了多个时区。这就是ORA-19172主错误,它常常发生在程序中使用Oracle函数fn:datetime时。fn:datetime函数用于从指定的日期时间的属性获取XML日期时间,以便用于更多操作。该函数要求传入日期时间参数中没有指定多个时区参数。
最常见的案例是在数据表中定义日期时间属性时出现此错误,例如:
select *
from settings
where fn:datetime(created_at) > 10;
此查询中,table.created_at试图使用fn:datetime函数采用多个时区参数,因此出现了错误。
为了解决此错误,应检查select查询是否正确使用fn:datetime函数,用于多个参数的函数,如下所示:
select *
from settings
where datetime:datetime(datetime, timezone) > 10;
此查询仅使用datetime:datetime函数以正确的以下参数:日期时间和时区,正确定义,因此不会出现此错误。