Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Некорректно отображается часть русских слов  [new]
MaximaXXL
Member

Откуда: Киев
Сообщений: 652
altjke,

[url=]https://docs.oracle.com/cd/B28359_01/server.111/b28298/ch2charset.htm[/url]

The database character set is used to identify SQL and PL/SQL source code. In order to do this, it must have either EBCDIC or 7-bit ASCII as a subset, whichever is native to the platform. Therefore, it is not possible to use a fixed-width, multibyte character set as the database character set. Currently, only the AL16UTF16 character set cannot be used as a database character set.
7 июн 17, 17:37    [20547957]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
AmKad
Member

Откуда:
Сообщений: 5222
MaximaXXL
altjke,

[url=]https://docs.oracle.com/cd/B28359_01/server.111/b28298/ch2charset.htm[/url]

The database character set is used to identify SQL and PL/SQL source code. In order to do this, it must have either EBCDIC or 7-bit ASCII as a subset, whichever is native to the platform. Therefore, it is not possible to use a fixed-width, multibyte character set as the database character set. Currently, only the AL16UTF16 character set cannot be used as a database character set.
У автора NCHAR_CHARACTERSET = AL16UTF16, а тут про NLS_CHARACTERSET.
7 июн 17, 17:40    [20547967]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
AmKad
altjke
Прогнал твой тестовый пример через один и тот же клиент на другом серваке - там все ок. Разница в nls_database_parameters только в NCHAR_CHARACTERSET - на "кривом" серваке UTF8, на нормальном AL16UTF16.
Ну вот, ты нас за нос водишь. Я считал, что ты работаешь на одном сервере с разных клиентов, а у тебя и сервера разные, соответственно и данные тоже.

А не nclob ли это у тебя часом? Покажи ddl-таблицы. На обоих серверах. С указанием, на каком из них проблема.


Так, ты все правильно считал, первоочередная проблема в том что разными клиентами на одном серваке часть русских букв клоб поля превращается в знаки ?

Я чисто ради эксперимента прогнал запрос в одном клиенте на разных серваках:

with s as
(select xmltype('<x><y>Русские буквы</y></x>') x from dual)
select s1.x.getclobval() val
from s s1;


Проблема в том что на боевом серваке все ок, а при переносе запись на тестовый - кривота.

DDL идентичны:

CREATE TABLE TEMP_TABLE
    (
      ID NUMBER NOT NULL ,
      FORM CLOB 
    )
7 июн 17, 17:43    [20547981]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
AmKad
altjke,

И это с обоих серверов вытащи:
select *
from nls_database_parameters
where parameter like 'NLS%CHARACTERSET';



Нормальный серв :

NLS_NCHAR_CHARACTERSET	AL16UTF16
NLS_CHARACTERSET	CL8MSWIN1251


кривой:

NLS_NCHAR_CHARACTERSET	UTF8
NLS_CHARACTERSET	CL8MSWIN1251
7 июн 17, 17:45    [20547993]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51780

altjke
вырезал из имеющегося кривые символы + по паре символов по бокам

Софтина, из которой ты это копипастил, явно считает, что буквы приходят в UTF-8, в то
время как там 1251. Ищи в её настройках как её избавить от такого заблуждения.

Posted via ActualForum NNTP Server 1.5

7 июн 17, 17:50    [20548011]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
Dimitry Sibiryakov
altjke
вырезал из имеющегося кривые символы + по паре символов по бокам

Софтина, из которой ты это копипастил, явно считает, что буквы приходят в UTF-8, в то
время как там 1251. Ищи в её настройках как её избавить от такого заблуждения.


Не понятно почему только часть русских букв он считает кракозябрами, а часть нет :(
7 июн 17, 17:53    [20548016]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51780

altjke
Не понятно почему только часть русских букв он считает кракозябрами, а часть нет :(

Потому что эти буквы не являются валидным UTF-8 и отображаются "как есть", без дальнейшей
перекодировки.

Posted via ActualForum NNTP Server 1.5

7 июн 17, 17:55    [20548023]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
Dimitry Sibiryakov
altjke
Не понятно почему только часть русских букв он считает кракозябрами, а часть нет :(

Потому что эти буквы не являются валидным UTF-8 и отображаются "как есть", без дальнейшей
перекодировки.



Часть русских букв - имел ввиду не буквы алфавита, а значения между тегами ХМL.
Шляпа в том что между одними тегами "Москва" корректно, а между вторыми тегами(другими, но в рамках одного XML) "Москва" - ??????
И заменяется на кривоту вся строка между тегами,а не конкретные буквы.
И to_char() почему то решает проблему, он выполняет какую-то перекодировку? Посимвольные дампы кривых символов - соответствуют байтам русских букв.
7 июн 17, 18:02    [20548035]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
Прогнал ещё один тестовый пример:

with s as
(select xmltype('<x><y>Русские буквы</y><y>Русские буквы</y></x>') x from dual)
select S1.X.GETCLOBVAL()
from s s1;



Получаю:

<x><y>&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;/y><y>&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;/y></x> буквы</y></x>


W T F ??
8 июн 17, 09:42    [20548973]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
altjke,

а getStringVal?
8 июн 17, 12:59    [20549826]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
Сергей Арсеньев
altjke,

а getStringVal?



Отображает корректно.
Если значение getclobval засунуть в переменную типа клоб и вывести через dbms_output - тоже все корректно
8 июн 17, 13:53    [20550050]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
altjke,

А посмотри-ка конфиги JVM и их опции в конфиге приложений, которыми ты смотришь.
Ибо как я понимаю, все проблемы на уровне "посмотреть содержимое клоба через java-приложение".

Что-то в духе
AddVMOption -Duser.language=en
AddVMOption -Duser.country=US
8 июн 17, 14:00    [20550079]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
altjke,

sqldeveloper/sqldeveloper/bin/sqldeveloper.conf в частности
8 июн 17, 14:01    [20550083]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
env
altjke,

sqldeveloper/sqldeveloper/bin/sqldeveloper.conf в частности



I
ncludeConfFile ../../ide/bin/ide.conf

SetJavaHome ../../jdk

AddVMOption  -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true

AddVMOption -Dsun.java2d.ddoffscreen=false

AddVMOption -Dwindows.shell.font.languages=

AddVMOption  -XX:MaxPermSize=128M

AddVMOption -Doracle.jdbc.mapDateToTimestamp=false  
IncludeConfFile  sqldeveloper-nondebug.conf

AddVMOption -Duser.language=en
AddVMOption -Duser.country=US 



Последние две строки добавлял сам, но проблема не решилась.
Странно что он смотрит клобы на одной базе корректно, а на другой нет. Хотя CHARSET одинаковый у обоих баз
8 июн 17, 14:13    [20550141]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
altjke,

Добавлял на машине с каким чарсетом в реестре?

Попробуй поиграться с ru, RU
8 июн 17, 14:42    [20550281]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
altjke,

Если база XE , то AddVMOption -Duser.region=us
8 июн 17, 14:51    [20550311]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
Ivan K
Member

Откуда: Москва
Сообщений: 304
Присоединяюсь к ТС

в 12.2 есть такой необъяснимый косяк. В SQL Developer и SQLCli - русские буквы из CLOB отображаются неправильно, в SQL*Plus - все корректно.

К сообщению приложен файл. Размер - 86Kb
8 июн 17, 15:37    [20550494]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
env
altjke,

Если база XE , то AddVMOption -Duser.region=us


Игры с ru Ru не помогли, БД не ХЕ.
8 июн 17, 15:40    [20550503]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18363
Судя по ряду сообщений, парсер неверно разбирает XML - в частности, неверно отсчитывает длину символов - это приводит к появлению "хвоста".
Вероятно, парсер полагает, что XML-контент представлен в монобайте.
Вопрос: почему парсер так считает?
Быть может, в самом XML-документе задекларирована кодировка, не соответствующая фактически переданной парсеру?
8 июн 17, 16:18    [20550701]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
andrey_anonymous
Судя по ряду сообщений, парсер неверно разбирает XML - в частности, неверно отсчитывает длину символов - это приводит к появлению "хвоста".
Вероятно, парсер полагает, что XML-контент представлен в монобайте.
Вопрос: почему парсер так считает?
Быть может, в самом XML-документе задекларирована кодировка, не соответствующая фактически переданной парсеру?


Мимо, т.к. даже не xml'ный клоб выдает какую-то дичь.
Неужто тикет в оракл заводить на предмет взаимоотношений java и оракла 12.2 ?(

К сообщению приложен файл. Размер - 28Kb
8 июн 17, 16:46    [20550815]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
Вопрос все ещё актуален
13 июн 17, 15:32    [20560890]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
altjke,

Удаётся ли повторить ситуацию на чистой виртуалке с разными NLS_ параметрами в реестре при одинаковых региональных настройках ОС и версиях ораклового клиента и остального софта?
14 июн 17, 10:08    [20562568]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
altjke
Member

Откуда:
Сообщений: 102
env
altjke,

Удаётся ли повторить ситуацию на чистой виртуалке с разными NLS_ параметрами в реестре при одинаковых региональных настройках ОС и версиях ораклового клиента и остального софта?


Такой возможности, к сожалению, нет.
14 июн 17, 11:47    [20563064]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
NiedovolenOracle
Guest
Такая же ерунда . Добавлю свои пару копеек:

При установке в sql developer Oracle_home если ставить хоум где находиться 11 версия - все работает
если устанавливать хоум где находиться 12 - не работает, но если поставить галочку использовать oci работает нормально.

Похоже на проблему thin client при работе с clob
14 июн 17, 12:28    [20563266]     Ответить | Цитировать Сообщить модератору
 Re: Некорректно отображается часть русских слов  [new]
NiedovolenOracle
Guest
Никто не нашел в чем проблема? На металинке ничего не нашел(((
22 июн 17, 09:58    [20582566]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Oracle Ответить