日期 月份 在甲骨文中命名语言



我的表中有一个varchar字段,其中包含一个日期,格式为:Dic 31 1999 12:00AM,通常可以使用to_date配置'Mon DD YYYY HH:MIAM'进行转换而不会出现任何问题。

月份名称当然可以用任何语言。例如,一月将Jan英语,Ene西班牙语。

我认为 Oracle 客户端会选择机器的区域设置来计算传入字符串的语言。唯一的问题是,如果您是无法真正知道日期来自何处的服务器,这将并不总是有效。

目前的问题是,每次我在西班牙语计算机中并尝试处理英语名为月份的日期时,我都会收到"无效月份"错误。

我有没有办法在执行时间告诉 Oracle,我要发送的语言是什么?

当前丑陋的解决方法是将不匹配的月份翻译成西班牙语。

你应该为此使用 NLS_DATE_LANGUAGE:

select to_char(sysdate, 'dd Month, Day', 'NLS_DATE_LANGUAGE = turkish') from dual
您可以使用

SELECT * FROM NLS_SESSION_PARAMETERS来确定当前的语言设置(也NLS_INSTANCE_PARAMETERSNLS_DATABASE_PARAMETERS存在)。

使用工作站上的NLS_*环境变量或 SQL 会话中的ALTER SESSION语句来更改这些语言设置。

ALTER SESSION可能会起作用。我不记得具体是怎么做的,但我知道你可以用它设置区域设置、日期样式和数字格式。

相关内容

  • 没有找到相关文章

最新更新