已翻译的Oracle ApEx应用返回不正确的月份缩写

已翻译的Oracle ApEx应用返回不正确的月份缩写,oracle,translation,oracle-apex,Oracle,Translation,Oracle Apex,我们有一个ApEx数据输入网站,可以翻译成墨西哥西班牙语和加拿大法语。大多数数据表上的关键列之一是与数据关联的日期。因此,每次需要此值时都有日期选择器字段 翻译会根据当前语言自动显示月份代码(在西班牙语网站上选择的一月日期将显示enero的“Ene”)。在将日期记录到DB之前,应用应用程序格式掩码“DD-MON-RR”;这可以理解当前语言,并用英语在DB上记录值 问题是12月份(diciembre)显示的是“Dec”的缩写,而不是“Dic”。因此,会生成错误ORA-01843(不是有效月份),并

我们有一个ApEx数据输入网站,可以翻译成墨西哥西班牙语和加拿大法语。大多数数据表上的关键列之一是与数据关联的日期。因此,每次需要此值时都有日期选择器字段

翻译会根据当前语言自动显示月份代码(在西班牙语网站上选择的一月日期将显示enero的“Ene”)。在将日期记录到DB之前,应用应用程序格式掩码“DD-MON-RR”;这可以理解当前语言,并用英语在DB上记录值

问题是12月份(diciembre)显示的是“Dec”的缩写,而不是“Dic”。因此,会生成错误ORA-01843(不是有效月份),并且不会保存数据。但是,如果手动将条目更改为##-Dic-###,则会正确记录该值,不会出现错误


这表明自动生成的该语言的月份缩写不正确。这是解决方案中已知的错误吗?

我对全球化一无所知,我的Apex应用程序只使用克罗地亚语。但是,作为一种解决方法,您可以切换到另一种日期格式掩码,例如DD.MM.YYYY;这样做,您就不会依赖于语言差异。

如果没有其他办法,这是一个很好的解决方案。我的用户喜欢使用MON格式来更快地理解特定数据点。是的,我理解这一点,特别是如果这些国家/地区的日期格式不同(例如,如果一个国家/地区使用MM/DD/YYYY,另一个国家/地区使用DD.MM.YYYY。前两个“组”(月和日)可能会引起混淆,因为-什么是2017年12月5日?是12月5日还是5月12日?我希望墨西哥和加拿大不是这样。这些国家确实报告了不同的日期,这正是我的犹豫。作为一个实验,我完全删除了格式掩码,并且每个la的日期在ApEx中显示的方式不同语言,但在数据库中正确记录为DD-MON-RR。如果这不会对应用程序中的任何其他内容产生负面影响,这可能是解决方案。据我所知,日期数据类型值以我们人类无法读取的格式存储在数据库中。为了表示有意义的内容,我们使用适当的格式m_CHAR问。除此之外,出于显示目的,我们使用NLS设置,因此我认为DD-MON-RR是这样设置的。您可以使用ALTER SESSION或在数据库级别使用ALTER SYSTEM set NLS_DATE_格式进行更改。