teiid中的DayOfWeek函数下推到Oracle时取决于区域设置



在teiid文档中,为DayOfWeek函数规定了以下定义

返回一周中的某一天(周日=1,周六=7(

但是当teiid被下推到Oracle时,dayOfWeek的输出会根据区域设置而有所不同

美国区域设置

周日:1

德语区域设置

周一:1

我调查了一下,发现当翻译到oracle时,源查询被翻译成了这个to_number(TO_CHAR(g_0."DATE", 'D'))。Oracle中的to_char方法取决于区域设置。

对于这个问题,有没有DayOfWeek函数的替代方案或某种变通方法?

来源https://community.oracle.com/ideas/24090有几个建议可以解决oracle不支持与Teiid的org.Teiid.iso8601Week=true行为匹配的ID格式的问题。除了根据其中一个建议进行本地代码修复外,您还必须创建一个新的源函数来提供类似的功能

create foreign函数ora_dow(param timestamp(返回整数选项("teiid_rel:native query"trunc($1(-ttrunk($1,'IW'(+1'(;

也被捕获为https://issues.redhat.com/browse/TEIID-6016

相关内容

  • 没有找到相关文章

最新更新