Я прочитал многие связанные темы stackoverflow, и я провел целый день с googleing следующей проблемой, но я не нашел ничего, что могло бы помочь, однако проблема не кажется завершенной.Кодировка клиента Oracle SQL Developer
У меня есть база данных Oracle. Давайте посмотрим на следующий PL/SQL скрипт:
CREATE TABLE Dummy(
id number(19,0),
tclob clob,
tnclob nclob,
PRIMARY KEY (id));
INSERT INTO dummy (id, tclob, tnclob) VALUES (1, 'ñ$ߤ*>;''<’', 'ñ$ߤ*>;''<’');
SELECT tclob, tnclob FROM dummy;
Моя проблема заключается в том, что «N» и «»»символы сохраняются как знак вопроса. Я также попытался загрузить ранее вставленные значения через JAVA, но я получаю вопросительные знаки вместо специальных символов.
Я создал небольшой метод JAVA, который использует OraclePreparedStatement для сохранения тестовых данных, и я использую метод setNString() для присоединения данных nclob к запросу. В этом случае все символы отображаются в JAVA, а также в SqlDeveloper.
Таким образом, возможным решением является использование JAVA для сохранения моих данных в db. У меня есть тысячи строк SQL-скрипт, который вставляет данные, и я не хочу, чтобы все это снова записывалось в java.
Итак, вопрос в том, почему sqldeveloper нарушает специальные символы?
Мои настройки:
SELECT DECODE(parameter, 'NLS_CHARACTERSET', 'CHARACTER SET',
'NLS_LANGUAGE', 'LANGUAGE',
'NLS_TERRITORY', 'TERRITORY') name,
value from v$nls_parameters
WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_LANGUAGE', 'NLS_TERRITORY')
Результат:
NAME VALUE
------------- -------------
LANGUAGE HUNGARIAN
TERRITORY HUNGARY
CHARACTER SET EE8ISO8859P2
Я изменил SQLDeveloper/Preferences/Окружающая среда/Кодирование в UTF-8. Я также изменил HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE значение \ KEY_OraDb11g_home1 для HUNGARIAN_HUNGARY.UTF8
Update: Я попытался вставить данные со следующими синтаксисах:
INSERT INTO dummy (id, tclob, tnclob) VALUES (1, N'ñ$ߤ*>;''<’', N'ñ$ߤ*>;''<’');
INSERT INTO dummy (id, tclob, tnclob) VALUES (1, 'ñ$ߤ*>;''<’', to_nclob('ñ$ߤ*>;''<’'));
Ничто не помогало.
Так что я могу сделать?
никто не может помочь? : «( – maestro
Не могли бы вы показать здесь результат этого запроса:' select * from nls_database_parameters где параметр как»% SET'' – krokodilko
Результат вашего запроса: NLS_NCHAR_CHARACTERSET \t AL16UTF16 NLS_CHARACTERSET \t EE8ISO8859P2 – maestro