使用简单的Oracle查询以其他语言选择月份名称?

时间:2017-10-27 12:14:48

标签: sql oracle11g

如何使用简单的Oracle查询以其他语言选择月份名称?

SELECT TO_CHAR( myDateCol, 'month' ) AS "Mes calendaristico" 
FROM MyTable;

上面的代码将以英语返回我所需的内容。

我也尝试过:

SELECT TO_NCHAR( myDateCol, NA, NLS_DATE_LANGUAGE 'spanish' ) AS "Mes calendaristico" 
FROM MyTable;

但它确实不起作用,将错误归还给我:

  

错误代码:907   错误消息:ORA-00907:缺少右括号   位置:50

1 个答案:

答案 0 :(得分:4)

This documentation on TO_NCHAR建议您尝试的语法,但它适用于OLAP DML,而不是SQL。因此,给定的例子不起作用。

正确的方法是将NLS选项指定为字符串:

select 
  TO_NCHAR(SYSDATE, 'MON', 'NLS_DATE_LANGUAGE=spanish') -- OCT
from dual

TO_CHAR也可以这样做。

select
  TO_CHAR(sysdate, 'MONTH', 'NLS_DATE_LANGUAGE=spanish') , -- OCTUBRE   
  TO_CHAR(sysdate, 'Month', 'NLS_DATE_LANGUAGE=spanish') , -- Octubre   
  TO_CHAR(sysdate, 'month', 'NLS_DATE_LANGUAGE=spanish') , -- octubre   
  TO_CHAR(sysdate, 'mon', 'NLS_DATE_LANGUAGE=spanish') -- oct
from dual