Problémák merülnek fel, amikor az Oracle 11g ablakokra - Dmitrij bobrovsky blogdmitry

Verziótól kezdődően Oracle 11.1 grafikus segédprogram sqlplusw.exe nyilvánították elavult (elavult) és ki van zárva a forgalmazás. Most már, hogy csak a konzolos verzió - sqlplus.exe. Ha használja, az orosz nyelv, vannak problémák. Hozzászólások a legtöbb SQLPlus szkriptek és üzenetek jelennek meg (két különböző dolog) nem jelennek meg helyesen (kryakozyabry vagy rajz karakter). Mégis, néhány ember kezdett feltenni a kérdést, hogy hogyan kell beállítani az aktuális könyvtárat, hogy végre a beágyazott szkripteket. Mi meg fogja érteni, annak érdekében, hogy:

A probléma a helytelen üzenet jelenik meg annak a ténynek köszönhető, hogy az alapértelmezett konzol megjeleníti az összes kódolt OEM DOS 866. szkriptek, mint egy sima szöveges fájl kódolt MS WIN 1251. kódolás SQLPlus üzeneteket, függ a változó NLS_LANG, és mivel bázis orosz adatok általában létre a kódoló CL8MSWIN1251 (nem RU8PC866), akkor a változókat beállítottuk, illetve, ahogy NLS_LANG CL8MSWIN1251. Ie A probléma az eltérő kódolás konzol és szoftver, amely megjelenít egy üzenetet a konzolon.

1) Orosz üzenetek jelennek meg a konzolon helyesen van szüksége ahhoz, hogy három feltételnek.

1. unicode font, például Lucida Console kell felszerelni a tulajdonságok a konzol (jobb klikk cím cmd ablakban).

Problémák merülnek fel, amikor az Oracle 11g ablakokra - Dmitrij bobrovsky blogdmitry

Problémák merülnek fel, amikor az Oracle 11g ablakokra - Dmitrij bobrovsky blogdmitry

2. A kódolás üzenetek nyomtatott megfelel a harmadik része a NLS_LANG változó, és meg kell CL8MSWIN1251 (például AMERICAN_CIS.CL8MSWIN1251).

3. Meg kell változtatni a kódlapot a konzol a 1251 csapat

Ha mind a három feltétel teljesül - a problémákat az orosz betűket nem.

1. Változtatható NLS_LANG megadható három módja van:

a) (világszerte) (alapértelmezett) a registry-ben: HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE. Itt a változó lehet több helyen, különösen, ha a számítógép több ORACLE_HOME. Meg kell változtatni a sorrendben a ORACLE_HOME kezdődik SQLPlus. 64 bites rendszerek, van egy másik ághoz az Oracle - HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ ORACLE. Ha megváltoztatja egy változó, de az eredmény nem változik, bár az összes többi feltétel teljesül, akkor változik a változó, amely nem próbálja megváltoztatni mindent a NLS_LANG, hogy megtalálja, vagy nézd meg p c).

b) (helyileg) az adott DOS-t. Jobb a konzol set parancs

C:> SET NLS_LANG = AMERICAN_CIS.CL8MSWIN1251

c) (super globálisan) Beállítás egy környezeti változót az operációs rendszerben. Én így erősen ellenjavallt. Azonban az ilyen berendezés magában foglalja a változó a registry-ben, így ha a NLS_LANG a registry-ben, de az eredmény nem változik - ellenőrzi a környezeti változók, állítsa be a parancsot paraméterek nélkül.

2. Állítsa be a változó NLS_LANG globális szinten érinti az összes többi futó alkalmazások az Oracle, például EXPIMP. Ezért legyen óvatos és Biztonság indítani SQLPlus használni egy denevér vagy cmd fájl, amely módosíthatja a NLS_LANG az aktuális munkamenetet.

2) SQLPlus üzenetek jelennek meg helyesen, lásd. P. 1.).

Ha mindent leírt követelés 1) Az összes üzenet SQLPlus is helyesen jeleníti meg az orosz. Ha nincs probléma angol, ajánlom SQLPlus üzeneteket jelenít meg angolul. Mivel az angol nyelvű szegmensben a hálózat sokkal több információt, mint az orosz, és ha hibát számolt be az angol megoldást találni lesz könnyebb és gyorsabb.

Nyelvet SQLPlus konzol üzeneteket és más Oracle eszközökkel teljesíti az első része a NLS_LANG változó. Ez minden kommunikációs lesz az angol nyelv - meg kell állítani, mint az amerikai (pl AMERICAN_CIS.CL8MSWIN1251).

3) Hogyan kell beállítani az aktuális könyvtárat, hogy végre a beágyazott szkripteket.

Ehhez futtassa SQLPlus a munkakönyvtárt. Tegyük fel például, hogy a munka mappát szeretnénk használni a mappa C: \ EGRP \ Scripts és futtatni a szkriptet c: \ EGRP \ Scripts \ UPDATE.sql, amely felhívja magát más scriptek, amelyek közül néhány található meg a C: \ EGRP \ Scripts .

C: \> cd c: EGRP \ Scripts
c: \ EGRP \ Scripts> c: \ app32 \ admin \ termék \ 11.2.0 \ client_1 \ bin \ sqlplus.exe / nolog
SQL> @update

(A kép még mindig megjelenik, ha megváltoztatja a kódot oldal)

Problémák merülnek fel, amikor az Oracle 11g ablakokra - Dmitrij bobrovsky blogdmitry

A könnyű használhatóság, akkor létrehozhat egy denevér vagy cmd fájl futtatása SQLPlus.

REM echo off
REM A működő mappát (eltávolítható)
cd c: \ egrp \ scripts
SET NLS_LANG = RUSSIAN_CIS.CL8MSWIN1251
CHCP parancs 1251
szünet
REM Két lehetőség indul SQLPlus
c: \ app \ admin \ termék \ 11.2.0 \ dbhome_1 \ BIN \ sqlplus.exe / nolog
REM c: \ app \ admin \ termék \ 11.2.0 \ dbhome_1 \ BIN \ sqlplus.exe / nolog @UPDATE
kijárat

- echo off - nem vonja vissza a parancsokat futtat a konzolon, és csak az eredmény azok végrehajtásáról. Inkább, hogy mi folyik, így a fogyatékkal élő (REM) a parancsot.

- sqlplus.exe megadott teljes elérési útját. Ez különösen hasznos a számítógépen több ORACLE_HOME, hogy pontosan tudja, melyik futtatja SQLPlus. Ha a teljes elérési út nincs megadva, akkor fog futni SQLPlus a mappát, legyen az első a PATH környezeti változót. Ha ORACLE_HOME egy - a teljes elérési út nem szükséges.

- adott két lehetőség indul SQLPlus. Második kiviteli azonnal végrehajtja UPDATE.sql script munkamappához c: \ egrp \ szkripteket.