Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Нужен ли юникод  [new]
Ol_12
Guest
Коллеги, нужен совет.
Если достоверно известно, что в БД будут хранится только данные русского и английского языков и кодовой страницы cl8mswin1251 наверняка достаточно (что подтверждено многолетним опытом эксплуатации заменяемой системы), имеет ли смысл в новом проекте использовать юникод?
11 янв 11, 14:56    [10053764]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
Я бы советовал использовать. Например, понадобится юзать с другими базами из других проектов, не будет геммороя на разных уровнях
11 янв 11, 15:02    [10053810]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Правда размерчик базы увеличится....
11 янв 11, 15:05    [10053834]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Ol_12,

я бы от уникода воздержался. особливо,
1) если у вас есть объекты базы, в котрых имена содержат кириллицу - в уникоде вас прижмёт лимит 30 байт (которые станут != 30 char)
2) аналогично (зеркально) если у вас есть данные, которые при конвертации в уникод превысят 4000 байт
11 янв 11, 15:16    [10053991]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
SH_Юрий
Member

Откуда:
Сообщений: 121
Все зависит от конкретной задачи, для чего будет использоваться БД.
11 янв 11, 15:17    [10054000]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
miner
Member

Откуда: Moscow
Сообщений: 206
да, нужен
11 янв 11, 16:15    [10054570]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Edward Shevtsov
Member

Откуда: Moscow
Сообщений: 13469
Ol_12
Коллеги, нужен совет.
Если достоверно известно, что в БД будут хранится только данные русского и английского языков и кодовой страницы cl8mswin1251 наверняка достаточно (что подтверждено многолетним опытом эксплуатации заменяемой системы), имеет ли смысл в новом проекте использовать юникод?


я бы использовал
11 янв 11, 16:15    [10054572]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Edward Shevtsov
Member

Откуда: Moscow
Сообщений: 13469
orawish
2) аналогично (зеркально) если у вас есть данные, которые при конвертации в уникод превысят 4000 байт


почему байт?
11 янв 11, 16:16    [10054575]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Edward Shevtsov
orawish
2) аналогично (зеркально) если у вас есть данные, которые при конвертации в уникод превысят 4000 байт


почему байт?

потому, что лимит такой.
11 янв 11, 16:24    [10054643]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
d.nemolchev
Member

Откуда: Кустанай
Сообщений: 310
смысл использовать есть, но только вот к проекту он не имеет никакого отношения...
если система крупная, то появится шанс попилить нехилый баблос на апгрейде дисковых массивов и серверов
11 янв 11, 17:54    [10055490]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2854
использовать
11 янв 11, 17:58    [10055510]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Dev.l
Member

Откуда: Киев
Сообщений: 29
Блог
orawish
Ol_12,

я бы от уникода воздержался. особливо,
1) если у вас есть объекты базы, в котрых имена содержат кириллицу - в уникоде вас прижмёт лимит 30 байт (которые станут != 30 char)
2) аналогично (зеркально) если у вас есть данные, которые при конвертации в уникод превысят 4000 байт


Добавлю про VARCHAR2 пaрaметры в процедурах и функциях - будет 2000 символов тока влазить вместо 4000.

Но учитывая повальное использование юникода, мы тоже поставили базу юникодовскую.
Вдруг китайцам продукт продадим :)
11 янв 11, 18:46    [10055799]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
Dev.l
Добавлю про VARCHAR2 пaрaметры в процедурах и функциях - будет 2000 символов тока влазить вместо 4000.

шел бы ты, мальчик
11 янв 11, 18:49    [10055823]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
Dev.l
Добавлю про VARCHAR2 пaрaметры в процедурах и функциях - будет 2000 символов тока влазить вместо 4000.

Мэтр, что я делаю не так?
SQL> create or replace procedure test_param(x varchar2) is begin dbms_output.put_line(length(x)); end;
  2  /
 
Procedure created
 
SQL> set serveroutput on
SQL> exec test_param(rpad('a',32767,'b'));
 
32767
 
PL/SQL procedure successfully completed
 
SQL> 
11 янв 11, 19:00    [10055886]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
брадобрей
Dev.l
Добавлю про VARCHAR2 пaрaметры в процедурах и функциях - будет 2000 символов тока влазить вместо 4000.

шел бы ты, мальчик

ну почему же.
если он имел ввиду функции в sql-запросах - то таки ~да.
(с точностью до того, какой уникод и каких именно символов)
11 янв 11, 19:04    [10055907]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Edward Shevtsov
Member

Откуда: Moscow
Сообщений: 13469
orawish
Edward Shevtsov
пропущено...


почему байт?

потому, что лимит такой.


да, забавно, что поле varchar2(4000 char) все равно ограничено 4000 байтами
11 янв 11, 19:05    [10055911]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Dev.l
Member

Откуда: Киев
Сообщений: 29
Блог
Edward Shevtsov
orawish
пропущено...

потому, что лимит такой.


да, забавно, что поле varchar2(4000 char) все равно ограничено 4000 байтами


что ж тут забавного, если в юникоде 1 char = 2 byte

все логично...
11 янв 11, 19:09    [10055939]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
-2-
Member

Откуда:
Сообщений: 15330
Dev.l
что ж тут забавного, если в юникоде 1 char = 2 byte
брадобрей
шел бы ты, мальчик
11 янв 11, 19:10    [10055949]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Edward Shevtsov
..

да, забавно, что поле varchar2(4000 char) все равно ограничено 4000 байтами

еще забавнее, когда (например, при вставке в базу) поле подрезается (в соответствии с байт-спецификацией колонки) а последний символ национальный - дык получается
~половина уникодного символа в последнем байте (ну и сталбыть - в последнем символе) поля
11 янв 11, 19:12    [10055957]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Dev.l
Member

Откуда: Киев
Сообщений: 29
Блог
orawish
брадобрей
пропущено...

шел бы ты, мальчик

ну почему же.
если он имел ввиду функции в sql-запросах - то таки ~да.
(с точностью до того, какой уникод и каких именно символов)


andrey_anonymous, именно в функциях sql-запросов
и именно символов русских и т.д.(не американских)

orawish прав.
11 янв 11, 19:15    [10055970]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Dev.l
Edward Shevtsov
пропущено...


да, забавно, что поле varchar2(4000 char) все равно ограничено 4000 байтами


что ж тут забавного, если в юникоде 1 char = 2 byte

все логично...

+ Уникод весь такой загадочный и разный...

DB11G/XTENDER> select dump('z'),dump('я'),dump(convert('я','UTF8','AL16UTF16')) from dual;

DUMP('Z')         DUMP('Я')             DUMP(CONVERT('Я','UTF8',
----------------- --------------------- ------------------------
Typ=96 Len=1: 122 Typ=96 Len=2: 209,143 Typ=1 Len=3: 237,134,143
11 янв 11, 19:18    [10055987]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Dev.l
Member

Откуда: Киев
Сообщений: 29
Блог
xtender
Dev.l
пропущено...


что ж тут забавного, если в юникоде 1 char = 2 byte

все логично...

+
+ Уникод весь такой загадочный и разный...

DB11G/XTENDER> select dump('z'),dump('я'),dump(convert('я','UTF8','AL16UTF16')) from dual;

DUMP('Z')         DUMP('Я')             DUMP(CONVERT('Я','UTF8',
----------------- --------------------- ------------------------
Typ=96 Len=1: 122 Typ=96 Len=2: 209,143 Typ=1 Len=3: 237,134,143


Ну больше четерых не получишь это 100%-ов :)
11 янв 11, 19:21    [10055999]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Goldminer
Member

Откуда:
Сообщений: 553
Dev.l
orawish прав.

Кто бы сомневался!
А вот "+" - "русский" символ или "американский" ? А "№" ? А "€" ?
11 янв 11, 19:23    [10056010]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
Goldminer
Member

Откуда:
Сообщений: 553
xtender
DB11G/XTENDER> select dump('z'),dump('я'),dump(
convert('я','UTF8','AL16UTF16')
) from dual;

DUMP('Z')         DUMP('Я')             DUMP(CONVERT('Я','UTF8',
----------------- --------------------- ------------------------
Typ=96 Len=1: 122 Typ=96 Len=2: 209,143 Typ=1 Len=3: 237,134,143


Ну, это, положим, cheat. Юникод тут ни при чем.
11 янв 11, 19:31    [10056049]     Ответить | Цитировать Сообщить модератору
 Re: Нужен ли юникод  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Goldminer, какой такой чит?
желтый-красный-голубой, выбирай себе любой:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28298/applocaledata.htm#CIAEICDE
11 янв 11, 19:42    [10056100]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить