powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / При вставке половина символов русской строки �
57 сообщений из 57, показаны все 3 страниц
При вставке половина символов русской строки �
    #39977856
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

При попытке вставить в поле CLOB строку русского текста, половина этой строки заменяется знаком вопроса �. Если же вставляем исходный json, то небольшая часть конца json дублируется, при этом все русские символы заменяются на этот знак �, а в дублированной части русские буквы отображаются нормально.

Пробовал использовать функцию convert при вставке. Если приводить к кодировке CL8ISO8859P5, то результат не меняется, если приводить к кодировке UTF8, то строка выводится нормально, но добавляется в конец строки некоторые символы. Например при вставке convert('привет', 'utf8') результат выглядит так: "приветаВаЕб☐"

NLS_CHARACTERSET = CL8ISO8859P5

С чем это может быть связано?
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39977862
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более непонятный текст придумать сложно

Можно для тупых объяснить, кто и что вставлял, куда и откуда, что нажимали для вставки Ctrl-C, Ctrl-V или Ctrl-Insert, Shift-Insert и так далее.
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39977866
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, В таблице есть поле типа CLOB. Вставляем текст запросом INSERT INTO. Для примера:

Код: plaintext
1.
2.
3.
INSERT INTO table 
(app) 
VALUES
('привет')

Результат: ���вет
Код: plaintext
1.
2.
3.
INSERT INTO table 
(app) 
VALUES
(convert('привет','utf8'))

Результат: приветаВаЕб☐
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39977872
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamyВставляем текст запросом INSERT INTO.

Ошибка в приложении. Жалуйтесь его автору.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39977891
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
pwflamy


NLS_CHARACTERSET = CL8ISO8859P5

?
мигрировать на уникод
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39977892
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamy

NLS_CHARACTERSET = CL8ISO8859P5

С чем это может быть связано?

- С некорректной настройкой клиента (NLS_LANG указывает кодировку, отличную от кодировки вставляемого текста)
- С неверно выбранной кодировкой БД (в выбранной кодировке БД невозможно представить символы кириллицы)
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39977914
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousв выбранной кодировке БД невозможно представить символы кириллицы

С чего бы? ISO 8859-5 не слишком распространённая, но всё же вполне кириллическая кодировка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39977919
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Там дохренища тонкостей, в общем и целом проще мигрировать на уникод и не мучаться..

tl;drCLOBs when using fixed width character set NLS_CHARACTERSET are stored in the NLS_CHARACTERSET character set on disk. Examples are WE8MSWIN1252 , AR8ISO8859P6 etc.

However , CLOB's (and NCLOB's) of varying-width character sets (ex: UTF8, AL32UTF8) are stored in an internal fixed-width Unicode character set on disk. When data is fetched from, or written to, disk storage, Oracle converts between the internal format and the database (CLOB) or the national character (NCLOB) set Oracle uses for the "external" (N)CLOB datatypes.

Note on loading CLOBs from files in varying-width character sets
In Oracle9.2 and later the programmatic interface DBMS_LOB.LOADFROMFILE() should not be used for loading files to CLOBs for varying-width character sets. Instead use the new programmatic interface DBMS_LOB.LOADCLOBFROMFILE().
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978006
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous
pwflamy

NLS_CHARACTERSET = CL8ISO8859P5

С чем это может быть связано?

- С некорректной настройкой клиента (NLS_LANG указывает кодировку, отличную от кодировки вставляемого текста)
- С неверно выбранной кодировкой БД (в выбранной кодировке БД невозможно представить символы кириллицы)

Вывод nls_database_parameters такой:
NLS_ISO_CURRENCY=AMERICA
NLS_LANGUAGE=AMERICAN

По поводу смены кодировки, наши базисты не хотят, так как по их словам придется пересоздавать базу
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978012
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно не хотят
Если не работать со множеством языков одновременно, то юникод зло -- данные занимают больше места, обработка тормозней
А если нужны данные многих языков одновременно, но в небольшом количестве табличек -- можно воспользоваться N-типами

2ТС. На чем написан клиент? И какое значение переменной NLS_LANG на клиенте?
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978027
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров, приложение, что общается с бд, написано на java. Используется thin oracle jdbc driver.
Кроме этого, для теста подключаюсь к бд через idea OracleDriver
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978072
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С большой долей вероятности (>90%) строки уже испорчены на стороне Java (в неправильной/не Java/ кодировке)
Разбирайтесь, где у Вас кривые строки и из-за чего они возникают
Учитесь пользоваться отладчиком или, как минимум, логированием/троссировкой в своем коде. Начиная от банального System.out.println до Log4j и до 100500 других способов поиска ошибки.

IMHO
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978080
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Строка передается в формате UTF-8 и по логам передается валидной вплоть до передачи ее как аргумента в процедуру sql. Отладчик показывает такой же результат - строка нормально читается.
А вот если эту же строку попытаться считать сразу же после вставки в таблицу, то обратно она уже возвращается с символами �

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

Опять таки, выполняя просто запрос insert into через консоль idea, результат выходит таким же
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978087
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jdbc всегда работает в юникоде, насколько я знаю, поэтому никаких конвертаций там делать не нужно если данные не берутся из внешних источников, файлов, например

Не надо юзать какие-то левые тулзы, лучший и самый надежный клиент -- это родной sqlplus
Вот через него и проверяй вставку и чтение (установив NLS_LANG в соответсвии с кодовой страницей терминала)
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978095
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamyОпять таки, выполняя просто запрос insert into через консоль idea, результат выходит таким же

А через SQL*Plus?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978109
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делайте нормальный тест-кейс + тест на создание тест-таблицы + настройки с сервера
Выкладывайте в форум код и результат выполнения

Или "лукавит" Oracle или Вы )))

IMHO
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978139
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Попробовал сейчас через Oracle SQL Developer (так как установить Sql *Plus не могу)
Выполнил запрос:
INSERT INTO table
(id, app)
VALUES
(200, 'привет')

Далее выполняю select через Oracle SQL Developer - результат в поле app: ☐☐☐☐☐☐
Select через IDEA выводит - ���вет


Таблица создавалась след образом:
create table table
(
id NUMBER NOT NULL,
app CLOB
)

Результат запроса select * from nls_database_parameters:
NLS_DATE_LANGUAGE = AMERICAN
NLS_NUMERIC_CHARACTERS = .,
NLS_NCHAR_CHARACTERSET = AL16UTF16
NLS_CHARACTERSET = CL8ISO8859P5
NLS_ISO_CURRENCY = AMERICA
NLS_CURRENCY = $
NLS_TERRITORY = AMERICA
NLS_LANGUAGE = AMERICAN

Результат запроса select * from nls_session_parameters:
NLS_LANGUAGE = AMERICAN
NLS_TERRITORY = CIS
NLS_CURRENCY = p.
NLS_ISO_CURRENCY = CIS
NLS_NUMERIC_CHARACTERS = ,

Если еще какие-то параметры нужны, которые можно вытащить запросом, то напишите
NLS_DATE_LANGUAGE = AMERICAN
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978143
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamyустановить Sql *Plus не могу

Что мешает?

Обычно он уже установлен как часть Oracle Client.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978179
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Политика безопасности, есть определенный список ПО, который можно устанавливать
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978189
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оракул должен входить в этот список, ибо как вы с ним можете работать не устанавливая?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки �
    #39978191
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamy
Строка передается в формате UTF-8 и по логам передается валидной вплоть до передачи ее как аргумента в процедуру sql.

1. Джава унутре без специальных ухищрений работает в unicode, а не в UTF8. (да-да, utf-8 - это НЕ unicode, как и utf-16, utf-32 - это лишь представление родных юникодных codepoints)
2. Попробуйте локализовать
Для контроля сделайте таблицу с двума атрибутами: varchar2 и clob, вставьте туда свой "привет".
2а. Попробуйте Nvarchar2, NClob.
2б. Enable/disable storage in row
3. select dump(<field>,1016) прояснит ситуацию с хранимыми байтами.
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39978198
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Попробуйте локализовать

IMHO сначала локализовать нужно в java
1) или распечатать коды символов которые лежат в String, что бы убедиться, что кодировка правильная
2) задать строку не в виде платформеннозависимого 'Привет', а в виде кодов \u
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39978206
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Leonid Kudryavtsev,

ТС же сказал, что в sql developer проблема повторяется
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39978211
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема с одним Ява-клиентом повторяется в другом Ява-клиенте. Кто-то будет сомневаться в
её локализации?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39978217
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,

1) json, который передается в бд, создается с помощью Jackson ObjectMapper, который возвращает строку в UFT-8
2) попробую
3) select dump(app, 1016) from table - ошибка expected - got CLOB
select dump(to_char(app), 1016) - результат: Typ=1, Len=6, CharacterSet=CL8ISO8859P5: df, e0, d8, d2, d5, e2

Попробовал строку "привет" передать в формате "привет" - ���вет
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39978222
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pwflamy,

P.S> нашел sqlplus, однако ошибка при tnsping TNS-03505: Failed to resolve name
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39978239
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гадая на кофейной гуще, пальцем в небо.

Какие конкретно файлы JDBC драйвера Вы подсовываете Java при запуске? Есть ли там orai18n.jar (или как-то так, nls файлы)

Насколько я помню, без nls файлов JDBC thin драйвер вполне работает, но "не все функции выполняет"
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39978257
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamyselect dump(to_char(app), 1016) - результат: Typ=1, Len=6, CharacterSet=CL8ISO8859P5: df,
e0, d8, d2, d5, e2

https://ru.wikipedia.org/wiki/ISO_8859-5

df это "п"
e0 это "р"
d8 это "и"
d2 это "в"
d5 это "е"
e2 это "т"

То есть в базе строка хранится правильно. Проблема в её получении и выводе на экран.
Обращайтесь к программистам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979120
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сводка с полей.

Попробовал вставить запись в поле с типом VARCHAR2(255). Как не странно, но русские буквы успешно отображаются в VARCHAR2 в отличие от CLOB.

Хотел попробовать вставить запись через sqlplus, но к сожалению не получается подключится, так как не настроен listener
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979123
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверьте 22165410
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979739
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamy
не получается подключится, так как не настроен listener

Листенер настроен - инфа 146%.
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979852
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous, верно. Поправил tnsnames и теперь tnsping проходит. Правда это не помогло все равно решить проблему с ORA-12154 при подключении.

По теме: orai18n по умолчанию подключен в том же Oracle SQL Developer, а в нем ошибка такая же.
Пока работают следующие варианты:
1)в коде приложения перекодировать строку в кодировку ISO8859_5.
2)использовать NCLOB вместо CLOB

Оба варианта для нас не очень
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979883
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamyПока работают следующие варианты:

Вариант "прочитать Oracle Globalization Support Guide и вникнуть в проблему" вообще не
рассматривался или не работает по очевидным причинам?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979930
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Вы как понимаю знаете уже причину и решение?
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979933
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamyзнаете уже причину и решение?

Я знаю где и как их искать. И именно этим зарабатываю себе на хлеб с маслом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979962
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
pwflamy,

"select to_char(app) from ..." выдает нормальный "привет"?
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979968
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,

Верно, to_char выдает нормальный текст
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979972
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pwflamyto_char выдает нормальный текст

Следовательно, проблема именно в том, как Ява преобразует клобы. Логично?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979973
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

логично
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979980
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO не логично
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39979995
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dump() подтвердил, что данные на сервере хранятся правильно.
to_char() подтвердил, что на клиент они доставляются правильно.
Остаётся всего одно звено, способное их покорёжить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980094
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov
dump() подтвердил, что данные на сервере хранятся правильно.
какой нафиг dump - это был dump(to_char(clob)), dump(clob) сделать нельзя.
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980095
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov
Следовательно, проблема именно в том, как Ява преобразует клобы. Логично?..
нет. CLOB отдается клиенту точно в той же кодировке как и varchar2.
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980097
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
pwflamy,

так и не увидел ответа:
Вячеслав Любомудров
какое значение переменной NLS_LANG на клиенте?
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980105
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderтак и не увидел ответа

Ява-драйвер не использует NLS_LANG, так что смысла в том ответе...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980114
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Остаётся всего одно звено, способное их покорёжить.

"кривые руки" ?

Dimitry Sibiryakov

Следовательно, проблема именно в том, как Ява преобразует клобы.

Oracle JDBC драйвер не умеет работать с CLOB ?
не верю ( C )
Вы просто не умеете их готовить ( C )
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980125
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть я пропустил?

Версии Oracle Server - нет
Кода Java, как и каким образом производится "вставка" - нет
(можно делать по разному, все же с CLOB обычно работают через Stream, а не через String)
Test кейса - нет
Версии Java - нет, как запускается Java - не известно, версии JDBC драйвера - нет

Что есть:
понимание, что софт на клиентском компьютере стоит непонятно как и ставил его непонятно кто
22165254 22165325 22165386

кофе выпил, кофейная гуща для гадания лично у меня закончилась
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980134
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Leonid Kudryavtsev
Кода Java, как и каким образом производится "вставка" - нет
ну по словам тс Oracle SQL Developer точно так же пишет/читает.

Leonid Kudryavtsev
Версии Oracle Server - нет
этого точно не хватает, как и теста на стороне сервера прямо в sqlplus
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980158
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender
Dimitry Sibiryakov
dump() подтвердил, что данные на сервере хранятся правильно.
какой нафиг dump - это был dump(to_char(clob)), dump(clob) сделать нельзя.

Ультимативное доказательство сохранности данных:
22165433
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980172
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderпо словам тс Oracle SQL Developer точно так же пишет/читает

И это сужает область поиска до настроек Ява-машины.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980286
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Версия оракл = 19c release 19.0
Версия jdbc - использовался jdbc7 12.1.0.2, для теста подключался jdbc8 19.7
Используется хранимая процедура insert into для вставки значений
Для работы с бд используются возможности Spring data jpa
Используется JDK11
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980291
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По теме:

С большей вероятностью решение нашлось. Добавление параметра VM -Doracle.jdbc.defaultLobPrefetchSize=-1 решает проблему. В связи с этим интересно узнать, есть ли данный параметр в настройках БД и возможно ли подобрать какое-то значение, чтобы не отключать эту возможность.
Так же этот параметр пришлось добавить в параметры sqldeveloper.conf и в параметры подключения Idea

Про этот параметр нашел здесь:
https://stackoverflow.com/questions/51415859/jdbc-stream-of-clob-in-oracle-12-2-database-gives-wrong-encoding
https://www.sql.ru/forum/1279417/oracle-sql-developer-kodirovka-simvolov-v-clob-polyah
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980551
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Интересно:
Bug 26380097 : GEORGIAN CHARACTERS DONOT DISPLAYED CORRECTLY FOR CLOB WITH MYCLOB.GETSUBSTRING
Fixed in Product Version 18.1

А https://support.oracle.com/epmos/faces/BugMatrix?id=26380097
говорит, что пофиксен и в 12.2.0.1.200714
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980556
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дока уверяет, что поведение по умолчанию поменялось в 12.1
На форуме пишут, что глюка проявляется при upgrade с 12.1 на 12.2

наверное баг (((, но доступа на металинк у меня нет

чей баг не очень понятно, может jdbc, может базы

в 11.2.0.4 работал с LOB префетч, проблем у меня не было. Вообще LOB-префетч дает очень хорошую прибавку к производительности, т.ч. я бы искал описание бага и патчи на metalink'е

есть ли данный параметр в настройках БД
вряд ли, вообще это свойство клиента
если и есть, то не на уровне базы, а на уровне Net80 протокола
IMHO
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980562
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
по-моему, это все часть одной цепочки "оптимизаций" как и это:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare
    v_result varchar2(1000);
    v_open_tag varchar2(1);
    v_close_tag varchar2(1);
    v_string clob;
    v_string2 varchar2(10);
begin
    v_string := '1234567890';
    v_string2 := '{test}';
    v_result := v_open_tag || v_string || v_close_tag || v_string2;
    dbms_output.put_line('v_result='||v_result);
end;
/


Код: plsql
1.
2.
3.
12.1.0.2: v_result=1234567890{test}
18.3.0.0: v_result={test}7890
19.6.0.0: v_result={test}7890
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39980571
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жесть (((
...
Рейтинг: 0 / 0
При вставке половина символов русской строки &#65533;
    #39981640
pwflamy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

В итоге это оказалось таким же багом, как и в старых версиях. На момент этой темы было уже заведено 2 тикета в поддержке оракла:
https://support.oracle.com/knowledge/Oracle Database Products/2685368_1.html
https://support.oracle.com/knowledge/Oracle Database Products/2684571_1.html

6 числа был выпущен патч, который фиксит этот баг
...
Рейтинг: 0 / 0
57 сообщений из 57, показаны все 3 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / При вставке половина символов русской строки &#65533;
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]