如何更改oracle中的NLS_LANGUAGE等参数

问题描述 投票:0回答:4

我有NLS_LANGUAGE American,我想改成ITALIAN,数据库是oracle 11g。

我正在尝试以下

ALTER DATABASE CHARACTER SET ITALIAN

但这会产生错误。

oracle
4个回答
2
投票

NLS_LANGUAGE 的默认值可能是特定于操作系统的。您可以通过更改初始化文件中的值然后重新启动实例来更改 NLS_LANGUAGE 参数。 此设置位于 init.ora 或 spfile.ora 中。

如果您只想更改会话信息(例如更改日期格式),但不更改服务器消息,您可以使用 alter session,如下所示:

SQL> ALTER SESSION SET NLS_LANGUAGE=Italian;
SQL> SELECT ename, hiredate, ROUND(sal/12,2) sal FROM emp;
ENAME     HIREDATE    SAL
-----     --------    ---
Clark     09-Dic-88   4195.83
Miller    23-Mar-87   4366.67
Strauß    01-Apr-95   3795.87

SQL> ALTER SESSION SET NLS_LANGUAGE=German;
SQL> SELECT ename, hiredate, ROUND(sal/12,2) sal FROM emp;
ENAME     HIREDATE    SAL
-----     --------    ---
Clark     09-DEZ-88   4195.83
Miller    23-MÄR-87   4366.67
Strauß    01-APR-95   3795.87

2
投票

我认为您不喜欢修改整个数据库的NLS_LANGUAGE,而只是在本地会话上修改。

奔跑

ALTER SESSION SET NLS_LANGUAGE="ITALIAN";

您想修改 NLS_LANGUAGE 或字符集吗?这是两个完全不同的事情。


0
投票

在主机级别运行,设置环境变量

export LANG=en_US.UTF-8

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

0
投票

修改NLS_LANGUAGE有多种方法:

  1. 会话级别(临时,仅影响当前会话):
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
  1. 系统级别(永久,需要SYSDBA权限):
ALTER SYSTEM SET NLS_LANGUAGE = 'AMERICAN' SCOPE = SPFILE;

然后重新启动数据库以使更改生效。

  1. 通过环境变量:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  1. 在 init.ora/spfile.ora 中:
NLS_LANGUAGE = AMERICAN

有关更多详细信息和注意事项,请查看此帖子

© www.soinside.com 2019 - 2024. All rights reserved.