powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обрезает киррилические символы или как применить NLS_LENGTH_SEMANTICS=CHAR
5 сообщений из 5, страница 1 из 1
Обрезает киррилические символы или как применить NLS_LENGTH_SEMANTICS=CHAR
    #39934731
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настройки базы данных
Код: plsql
1.
SELECT PARAMETER, VALUE FROM V$NLS_PARAMETERS WHERE PARAMETER IN ('NLS_LENGTH_SEMANTICS', 'NLS_LANGUAGE');



авторNLS_LANGUAGE AMERICAN
NLS_LENGTH_SEMANTICS BYTE

есть таблица с тектовым полем
Код: plsql
1.
CREATE TABLE "DWH"."EMP"  ("ENAME" VARCHAR2(10 BYTE));



делаю инсерт с кириллистическими символами
Код: plsql
1.
Insert into DWH.EMP (ENAME) values ('Иванов');



получаю
авторORA-12899: value too large for column "DWH"."EMP"."ENAME" (actual: 12, maximum: 10)

т.е. 1 символ кириллицы БД считает за 2
команда
Код: plsql
1.
ALTER SYSTEM SET NLS_LENGTH_SEMANTICS=CHAR scope=both;


не приводит к успеху. БД также в NLS_LENGTH_SEMANTICS по прежнему BYTE

что нужно перенастроить, чтобы кириллические символы считались одекватно и вставлялись?
...
Рейтинг: 0 / 0
Обрезает киррилические символы или как применить NLS_LENGTH_SEMANTICS=CHAR
    #39934736
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова
что нужно перенастроить
Код: plsql
1.
alter table
...
Рейтинг: 0 / 0
Обрезает киррилические символы или как применить NLS_LENGTH_SEMANTICS=CHAR
    #39934746
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

если я дополнительно при описании типа поля еще прописывать Char
CREATE TABLE "DWH"."EMP_2" ("ENAME" VARCHAR2(10 char ))

то тогда все в порядке инсертится
но если делать просто
CREATE TABLE "DWH"."EMP_3" ("ENAME" VARCHAR2(10))
то он таблицу делает в BYTE по умолчанию

нельзя ли эту дефолтную опцию BYTE переделать на Char? для всех вновь создаваемых таблиц с текстовыми полями
...
Рейтинг: 0 / 0
Обрезает киррилические символы или как применить NLS_LENGTH_SEMANTICS=CHAR
    #39934755
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга Семенова
нельзя ли эту дефолтную опцию BYTE переделать на Char? для всех вновь создаваемых таблиц с текстовыми полями
Возможно, нужен рестарт экземпляра после
Ольга Семенова
Код: plsql
1.
ALTER SYSTEM SET NLS_LENGTH_SEMANTICS=CHAR

...
Рейтинг: 0 / 0
Обрезает киррилические символы или как применить NLS_LENGTH_SEMANTICS=CHAR
    #39934773
Ольга Семенова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Ольга Семенова
нельзя ли эту дефолтную опцию BYTE переделать на Char? для всех вновь создаваемых таблиц с текстовыми полями
Возможно, нужен рестарт экземпляра после
Ольга Семенова
Код: plsql
1.
ALTER SYSTEM SET NLS_LENGTH_SEMANTICS=CHAR



не помогло . Тоже самое в NLS_LENGTH_SEMANTICS=BYTE

SQL>SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP;
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size 2924928 bytes
Variable Size 1040191104 bytes
Database Buffers 553648128 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обрезает киррилические символы или как применить NLS_LENGTH_SEMANTICS=CHAR
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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