|
|
|
Вопрос по NVARCHAR
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Есть БД с такими параметрами: PARAMETERVALUENLS_CHARACTERSETCL8MSWIN1251NLS_DATE_LANGUAGERUSSIANNLS_LANGUAGERUSSIANNLS_NCHAR_CHARACTERSETUTF8NLS_RDBMS_VERSION10.2.0.4.0 Храним мы в ней русские и английские символы. Но в один прекрасный момент захотелось нам положить туда символы другого языка. Например итальянский. Захотелось нам для этого использовать строковые типы в national character set (NCHAR, NVARCHAR, NCLOB). Сказано - сделано. Приступаем к тестированию. Работаем через PL/SQL Developer. Создаем табличку с полем NVARCHAR типа. Пытаемся положить туда данные Код: plsql 1. 2. 3. 4. 5. Смотрим в таблицу: NTEXT????? Причем, если я открою таблицу на редактирование в том же PL/SQL Developer, то вписав в грид символы и закоммитив, я эти данные записать в базу могу. Все корректно пишется и селектится. Теперь о настройках: На клиенте и сервере NLS_LANG=RUSSIAN_RUSSIA.CL8MSWIN1251 Я прекрасно понимаю, что в CL8MSWIN1251 нет символов итальянского языка. Вопрос вот в чем: Как мне оповестить клиента, что для national character set я хочу использовать например UTF8 ? Читаю я документацию по 8i и вижу, что там был такой параметр: NLS_NCHAR, а в 10-ке его уже нет. Значит ли это, что такой механизм уже уходит в прошлое и базу надо изначально создавать в юникоде или все таки можно как то этот механизм заставить работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 14:28 |
|
||
|
Вопрос по NVARCHAR
|
|||
|---|---|---|---|
|
#18+
Air-zone, Много букв. Приведенный код как соответсвует повествованию, причем здесь html-коды? to_nchar по сути ничего не значит, ты просто вставляешь строку, указанную в кодировке бд (цифры и пунктуация) в поле nchar, что есть в исходном зачении, то и остается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 15:30 |
|
||
|
Вопрос по NVARCHAR
|
|||
|---|---|---|---|
|
#18+
думп 1016, html-коды появились видимо в процессе добавления поста. Изначально я туда вписывал итальянские символы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 15:36 |
|
||
|
Вопрос по NVARCHAR
|
|||
|---|---|---|---|
|
#18+
Удалось вставить данные корректно с помощью функции UNISTR: Код: plsql 1. Значит ли это, что если основная кодировка базы не юникод, и если мы пытаемся вставить юникод в NCHAR'ы, то напрямую простым инсертом это не сделать? Вот что мне интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 16:25 |
|
||
|
Вопрос по NVARCHAR
|
|||
|---|---|---|---|
|
#18+
Air-zoneВопрос вот в чем: Как мне оповестить клиента, что для national character set я хочу использовать например UTF8 ? Не волнуйся, БД знает от том, что тебе нужна кодировка UTF8 и конвертация выполняется. Проблема, как ты и сам заметил, в кодировке клиента. Ты пойми, что из CL8MSWIN1251 ну никак не вытащить итальянские символы ) Поставь NLS_LANG=.UTF8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 17:12 |
|
||
|
|

start [/forum/topic.php?fid=52&tid=1885822]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
220ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 517ms |

| 0 / 0 |
