Опубликовано: 05 май 04
Рейтинг:
Рейтинг:
Автор: Violina
Прислал: Violina
Немного теории
Языковые настройки Oracle клиента задаются с помощью переменной
NLS_LANG=<language>_<territory>.<charset>
которая может быть прописана либо в реестре(Windows)
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
либо в переменной окружения
C:\>SET NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
DOS консоль
При несоответствии кодовой страницы, заданной в NLS_LANG, и кодовой страницы, заданной для DOS консоли, русские сообщения отображаются некорректно.
C:\>SET NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
C:\>chcp
Текущая кодовая страница: 866
C:\>sqlplus vio/vio
SQL*Plus: Release 10.1.0.2.0 - Production on ╤Ё ╠рщ 5 12:26:30 2004
Мы можем сменить либо NLS_LANG
C:\>SET NLS_LANG=RUSSIAN_CIS.RU8PC866
C:\>chcp
Текущая кодовая страница: 866
C:\>sqlplus vio/vio
SQL*Plus: Release 10.1.0.2.0 - Production on Ср Май 5 12:29:18 2004
либо кодовую страницу для DOS консоли
C:\>SET NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
C:\>chcp 1251
Текущая кодовая страница: 1251
C:\>sqlplus vio/vio
SQL*Plus: Release 10.1.0.2.0 - Production on Ср Май 5 12:29:18 2004
Примечания
1) При смене кодовой страницы для DOS консоли на 1251, следует убедиться что для неё установлены шрифты Lucida Console.
2) Смена NLS_LANG в реестре может повлечь за собой некорректное отображение русских символов в оконных приложениях Windows, поэтому подстраивать NLS_LANG лучше для конкретной DOS сессии.
Графические программы SQL NAVIGATOR, ERWin и др.
Для решения проблем с отображением и сохранением русских символов в вышеуказанных программах могут помочь следующие изменения в реестре
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper] "ARIAL"=dword:000000cc "DEFAULT"=dword:000000cc [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes] "Arial,0"="Arial,204" "Arial Cyr,0"="Arial,204" "Courier,0"="Courier New,204" "Courier New,0"="Courier New,204" "Courier New Cyr,0"="Courier New,204" "Fixedsys,0"="Fixedsys,204" "Helv,0"="MS Sans Serif,204" "Lucida Console,0"="Lucida Console,204" "MS Serif,0"="MS Serif,204" "MS Sans Serif,0"="MS Sans Serif,204" "PROMT Helv Cyr,0"="PROMT Helv Cyr,204" "Small Fonts,0"="Small Fonts,204" "System,0"="System,204" "Tahoma,0"="Tahoma,204" "Times New Roman,0"="Times New Roman,204" "Times New Roman Cyr,0"="Times New Roman,204" "Tms Rmn,0"="MS Serif,204"
Необходимо создать reg файл с вышеприведенным содержимым, выполнить его и перезагрузиться. Если проблема не решилась, можно попробовать выполнить следующие изменения
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage] "1250"="c_1251.nls" "1251"="c_1251.nls" "1252"="c_1251.nls"
Примечания
1) При смене "1252"="c_1251.nls" могут возникнуть проблемы с отображением умляутов "ö", "ä", "ü" и "ß" в различных приложениях. В этом случае восстановите прежнее значение для "1252".
Комментарии
вариант выделения цветом консольного окна с prod
-- login.sql:
-- - или в рабочем каталоге sqlplus, если ярлык(шрифт Lucida Console!)
-- - или в текущем, см. host echo %CD% под win
-- замените ORCL.SQL.RU на глобальное имя вашей промышленной базы
define _if_prod ='07'
col color_prod noprint new_value _if_prod
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 190
set pagesize 0
column plan_plus_exp format a80
column global_name new_value gname
set termout off
select lower(user) || '@' ||
decode(global_name, 'ORACLE8.WORLD', '8.0', 'ORA8I.WORLD',
'8i', global_name ) global_name from global_name;
set sqlprompt '&gname> '
select decode(global_name, 'ORCL.SQL.RU', '0A', '07')
color_prod from global_name;
host color &_if_prod
host chcp 1251
undef _if_prod
set termout on
---------------------------
-- connect.sql: (@connect scott@orcl)
set termout on
connect &1
@login.sql
set termout on
undef 1
cool !
Очень полезная инфа, спасибо :)
спасибо большое
echo off
SET NLS_LANG=RUSSIAN_CIS.RU8PC866
chcp
break
sqlplus /nolog
exit
bat или cmd можете подсказать для запуска?
ещё раз спасибо!
эээ... сенкю вэри мач))))
ПОМОГЛООООО ТО КАК!!!!!!!!СПАСИБО!
Пролили свет в очередной темный угол Oracle-а. Спасибо.
Очень хорошая статья. Четко и по сути! Спасибо!
а я мучался...
ОЧЕРЕДНОЙ РАЗ СПАСИБО!!! А то мне советовали такое, что этим можн было систему обрушить!!! :)))
зря вы удаляете комментарии
в некоторых из них написано было больше ,чем в статье
Yeeees! Помогло, thanks!
помогло однако :)