Най-вероятно това се дължи на несъответствието между специфичния за локал NLS набор от знаци и набора от знаци на базата данни . Или пък NLS_LANG стойността не е зададена правилно в променливата на средата на ОС .
Вижте защо на моя клиент се показват нежелани стойности/специални знаци/въпросителни?
- Вашият клиентски набор от символи не съвпада с набора от знаци в базата данни.
Можете да сравните между:
-- locale-specific characterset
select value
from v$nls_parameters
where parameter = 'NLS_CHARACTERSET';
-- database characterset
select value
from nls_database_parameters
where parameter = 'NLS_CHARACTERSET';
Ако видите несъответствие между двете, задайте специфичния за локала NLS набор от символи на този на набора от символи на базата данни.
- Ако горните набори от знаци съвпадат, тогава трябва да зададете стойността NLS_LANG в променливата на средата на ОС.
За ОС Windows форматът е:
[NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
Следвайте инструкциите в документацията относно настройката на NLS_LANG :Настройка на променливата на средата NLS_LANG за бази данни на Oracle