我在注册表中为我的本地语言设置了NLS_LANG
。
CMD无法显示我当地语言的字符,所以我看到jibrish。
我正在谈论来自客户端的提示而不是实际数据,例如错误消息。
SQL> conn scott/tiger
ετσß°.
我需要将客户端的设置保留到本地NLS,因为其他程序依赖于它。
我尝试在glogin中添加$set NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
,但显然它不起作用,因为脚本只在sql * Plus已经启动后执行。
我的问题是,有没有办法为SQL * Plus设置NLS_LANG
到AMERICAN_AMERICA.WE8MSWIN1252
?
答案 0 :(得分:4)
NLS_LANG
。您只能设置语言,区域,数字字符等...
例如:
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';
NLS_LANG
被设置为环境变量,因此在运行 SqlPlus 之前使用:
在Windows上:
set NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
在Unix(Solaris和Linux,centos等)上
export NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
答案 1 :(得分:1)
您可以使用login.sql or glogin.sql在SQL * Plus启动时运行任意命令,因此在那里设置适当的会话设置
答案 2 :(得分:0)
alter session set nls_language ='AMERICAN';
将解决您的问题...
答案 3 :(得分:0)
当我今天遇到同样的问题时,这对我有用
从运行sqlplus之前运行的Windows命令提示符
{{1}}
答案 4 :(得分:-1)
set linesize 2000;
select * from NLS_DATABASE_PARAMETERS;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE WE8MSWIN1252;
alter database national character set internal_use AL16UTF16;
SHUTDOWN IMMEDIATE;
STARTUP;