我有NLS_LANGUAGE American,我想改成ITALIAN,数据库是oracle 11g。
我正在尝试以下
ALTER DATABASE CHARACTER SET ITALIAN
但这会产生错误。
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
我认为您不喜欢修改整个数据库的NLS_LANGUAGE,而只是在本地会话上修改。
奔跑
ALTER SESSION SET NLS_LANGUAGE="ITALIAN";
您想修改 NLS_LANGUAGE 或字符集吗?这是两个完全不同的事情。
在主机级别运行,设置环境变量
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
修改NLS_LANGUAGE有多种方法:
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
ALTER SYSTEM SET NLS_LANGUAGE = 'AMERICAN' SCOPE = SPFILE;
然后重新启动数据库以使更改生效。
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
NLS_LANGUAGE = AMERICAN
有关更多详细信息和注意事项,请查看此帖子。