|
|
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
Vadim Lejnin P.S. и, кстати, что меня Вадим про "NLS_LANG какой" зря спросил, получается? ;-) Не совсем :) дык это ирония была! )) Я верю, что ты не зря спросил! Повис важный вопрос пока: NLS_LANG = GERMAN_GERMANY.AL16UTF16 (как, кстати, узнать: валидное ли это значение??) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 11:05 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
DBAshnikПовис важный вопрос пока: NLS_LANG = GERMAN_GERMANY.AL16UTF16 (как, кстати, узнать: валидное ли это значение??) Чукча не читатель? 21666085 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 11:14 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
ElicDBAshnikПовис важный вопрос пока: пропущено... Чукча не читатель? 21666085 ах, да! Сорри! Спасибо! Получается, что валидное! Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 12:19 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousDBAshnikпоставил у себя в Виндах NLS_LANG = GERMAN_GERMANY.AL16UTF16 (как, кстати, узнать: валидное ли это значение??) Мсье копает не в ту сторону . а в какую надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 12:22 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
DBAshnikа в какую надо? В сторону Oracle Globalization Guide. Правила перекодировки не так просты как могут показаться. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 12:31 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDBAshnikа в какую надо? В сторону Oracle Globalization Guide. Правила перекодировки не так просты как могут показаться. а можно по-конкретнее, пожалуйста! Если сам в курсе, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 12:46 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
ещё я загнал в JDBC-настройку Java-коннектора (в Talend-проекте) значение: "useUnicode=true&characterEncoding=AL16UTF16" Но воз и ныне там! :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 12:58 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
DBAshnikа можно по-конкретнее, пожалуйста! В этой доке 388 страниц. Хочешь чтобы их тебе кто-то пересказывал вслух и с выражением? И, внезапно, это может оказаться бесполезным если ты используешь для доступа к БД какую-то хрень, ходящую в обход OCI или другого официального клиента. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 13:00 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
DBAshnikJDBC-настройку Java-коннектора тогда тебе надо конкретно начинать с "JDBC Programming with Unicode" вышеупомянутого гайда. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 13:02 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, ну спасибо хоть на этом! (правда уже сам дотумкал до этого раздела. Рою носом сейчас эту доку.... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 13:08 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
ПРОБЛЕМА РЕШЕНА! ВСЕМ СПАСИБО! :-) оказалось, что единственный необходимый для этого параметр в JDBC-настройке Java-коннектора это: oracle.jdbc.convertNcharLiterals=true Пусть это тут ещё когда-нибудь кому-нибудь поможет! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 14:49 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
DBAshnikconvertNcharLiterals Ты что, серьёзно данные через литералы передаёшь? Совсем пэхэпэшник что ли?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 15:24 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDBAshnikconvertNcharLiterals Ты что, серьёзно данные через литералы передаёшь? Совсем пэхэпэшник что ли?.. не знаю. Проблема была с системой Talend (что есть не что иное как DI в форме java-фремворка, если не в курсе). Как там вунутрях устроено - х.з. Но нужно чтоб программа (talend-job) хавала файлы (в том числе с кириллическими имененами!) сдвигала их в некую archiv-папку и писала эти имена в оракл-базу. Вот последнее то и не шло у меня! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 15:46 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
P.S. в Таленде этом, кстати, по разному реализовано, как я сейчас понял! Что-то идёт через литералы, что то через переменную! Чтоб работало и то и другое, нужно _оба_ флага выставить! Итоговая строка настройки jdbc-connection поэтому: oracle.jdbc.convertNcharLiterals=true&oracle.jdbc.defaultNChar=true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 16:49 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
DBAshnikandrey_anonymousпропущено... Проблема - в отсутствии базовых представлений о механизмах Globalization Support в оракеле. обоснуй, пожалуйста? В чём конкретно это отсутствие? В том, что NLS_LANG не имеет отношения к nvarchar2, nclob и т.п. Имеет-имеет. Для OCI-клиентов, что и было подремонстрировано Главное для понимания работы NLS - осознать, что все эти переменные/пропертя и т.п. относятся к КЛИЕНТУ. НЕ к серверу. Клиент должен честно задекларировать - в какой кодировке он собирается работать. И работать в задекларированной кодировке. 388 страниц GSG лучше, конечно, осилить - там много интересного и помимо кодировок, суперсетов и т.п.. Но НЕ ВРАТЬ и не выёживаться "от большого ума" - самый главный секрет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 17:07 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousDBAshnikпропущено... обоснуй, пожалуйста? В чём конкретно это отсутствие? В том, что NLS_LANG не имеет отношения к nvarchar2, nclob и т.п. Имеет-имеет. Для OCI-клиентов, что и было подремонстрировано Главное для понимания работы NLS - осознать, что все эти переменные/пропертя и т.п. относятся к КЛИЕНТУ. НЕ к серверу. Клиент должен честно задекларировать - в какой кодировке он собирается работать. И работать в задекларированной кодировке. 388 страниц GSG лучше, конечно, осилить - там много интересного и помимо кодировок, суперсетов и т.п.. Но НЕ ВРАТЬ и не выёживаться "от большого ума" - самый главный секрет :) кто чего конкретно врал???? кто в чём конкретно выёживался???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 17:51 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
DBAshnikкто чего конкретно врал???? кто в чём конкретно выёживался???? Попытки установить NLS_LANG в AL16UTF16 - суть попытка солгать серверу про чарсет исходных данных. Попытки выполнить convert в тот же AL16UTF16 в приложении - суть выёживание. По факту в случае OCI следовало выставить в NLS_LANG кодировку данных в файлах, в случае же java/jdbc - указывать реальную кодировку данных в этих самых файлах ридеру, что привело бы к трансляции данных в уникодицу и далее - по отлаженной колее в оракель. ...кстати, о птичках. Не знаю, умеет ли Talend загонять данные в оракеля лодырем (SAS, ODI и даже пентаха коммьюнити - умеют), но ежели умеет - следует, как минимум, рассмотреть этот подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 18:22 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousПопытки установить NLS_LANG в AL16UTF16 - суть попытка солгать серверу про чарсет исходных данных. Сервер не купится. ЕМНИП, UTF16 не может быть использована в качестве кодировки для NLS_LANG или инициализации Environment OCI. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 18:48 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕМНИП, UTF16 не может быть использована в качестве кодировки для NLS_LANG или инициализации Environment OCI. Откуда дровишки? AFAIR, ограничение по UTF16 другое - его нельзя назначить database characterset-ом. Только National Characterset-ом. Про ограничение на клиенте OCI что-то не припоминаю. По джаве - до java5 внутренней кодировкой джавы был UCS2, после - UTF-16, который является strict superset-ом UCS2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 19:46 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousПро ограничение на клиенте OCI что-то не припоминаю. Спасибо, Дмитрий - буду знать. Как минимум, sqlplus под win cmd c al16utf16 не работает. Код: plaintext 1. Код: plaintext 1. 2. Вероятно, первое суть следствие второго. Надо будет попробовать под другими платформами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 20:34 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousКак минимум, sqlplus под win cmd c al16utf16 не работает. В базе NLS клиента кодировке AL16UTF16 соответствует файл lx207d0.nlb, каковой имеется в наличии (locale builder не даст соврать). По ходу дело все-таки не в самой кодировке, а в ее поддержке консолью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 20:47 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousОткуда дровишки? OCI GuideWhen character set IDs are set through the function OCIEnvNlsCreate(), they will replace the settings in NLS_LANG and NLS_NCHAR. In addition to all character sets supported by NLSRTL, OCI_UTF16ID is also allowed as a character set ID in the OCIEnvNlsCreate() function, although this ID is not valid in NLS_LANG or NLS_NCHAR. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 21:04 |
|
||
|
не могу инсертить юникод(кириллицу) из программы в базу
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovOCI GuideOCI_UTF16ID is also allowed as a character set ID in the OCIEnvNlsCreate() function, although this ID is not valid in NLS_LANG or NLS_NCHAR. Ну да. Т.е. вообще в OCI можно, но вот конкретно в консоли - нельзя. Почитал тут линуксоидов - объясняют возможностью наличия null-символа в utf-16 строке, что противно пионерскому духу классической C-строки. А потому нельзя сгенерировать локаль utf-16. Раз нельзя локаль сгенерировать - то нельзя и консольные утилиты с такой некошерной кодировкой запускать. Логично же, чо :) Остались окошечные managed applications, ибо писанные на C юниксы по ходу отвалились как класс, а прочие VAX/VMS-ы и подавно. Не знаю, насколько OCI вообще дружен с managed... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2018, 21:33 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39698944&tid=1883495]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
203ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
3ms |
| others: | 203ms |
| total: | 538ms |

| 0 / 0 |
