Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Размер строки больше размера поля? / 5 сообщений из 5, страница 1 из 1
13.01.2016, 21:27
    #39146795
Квази
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер строки больше размера поля?
Есть поле varchar(900) utf8, в нем хранится короткая строка (50 символов). Почему char_length(это_поле) показывает больше 1000.
Пример базы во вложении.
...
Рейтинг: 0 / 0
13.01.2016, 22:29
    #39146819
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер строки больше размера поля?
Строки в поле notes этой таблицы содержат trailing-пробелы.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
C:\MIX\firebird\fb25\bin>isql /3255:C:\TEMP\1test\PKB.FDB
Database:  /3255:C:\TEMP\1test\PKB.FDB

SQL> show database;
. . .
Default Character set: UTF8

SQL> show table;
       UVD_ACTIONS
SQL> show table uvd_actions;
ID                              INTEGER Not Null
NOTES                           VARCHAR(900) Nullable
CONSTRAINT PK_UVD_ACTIONS:
  Primary key (ID)

SQL> set list on;
SQL> select char_length(notes), octet_length(notes) from uvd_actions;

CHAR_LENGTH                     1182
OCTET_LENGTH                    1200

CHAR_LENGTH                     1182
OCTET_LENGTH                    1200

CHAR_LENGTH                     1182
OCTET_LENGTH                    1200

CHAR_LENGTH                     1182
OCTET_LENGTH                    1200


SQL> select char_length(trim(notes)), octet_length(trim(notes)) from uvd_actions;

CHAR_LENGTH                     32
OCTET_LENGTH                    50

CHAR_LENGTH                     32
OCTET_LENGTH                    50

CHAR_LENGTH                     32
OCTET_LENGTH                    50

CHAR_LENGTH                     32
OCTET_LENGTH                    50
...
Рейтинг: 0 / 0
14.01.2016, 05:13
    #39146908
Квази
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер строки больше размера поля?
ТаблоидСтроки в поле notes этой таблицы содержат trailing-пробелы.
Код: plaintext
1.
2.
C:\MIX\firebird\fb25\bin>isql /3255:C:\TEMP\1test\PKB.FDB
Database:  /3255:C:\TEMP\1test\PKB.FDB

Хммм... Спасибо. А как их вставить?
...
Рейтинг: 0 / 0
15.01.2016, 07:47
    #39147863
AndreyTarasov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер строки больше размера поля?
КвазиХммм... Спасибо. А как их вставить?

в смысле как их убрать?

Код: sql
1.
2.
3.
update uvd_actions
set 
notes = trim(notes);
...
Рейтинг: 0 / 0
15.01.2016, 08:44
    #39147874
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер строки больше размера поля?
AndreyTarasovКвазиХммм... Спасибо. А как их вставить?

в смысле как их убрать?

Код: sql
1.
2.
3.
update uvd_actions
set 
notes = trim(notes);



trim() уберет и конечные и начальные пробелы.
В данном случае надо писать
Код: sql
1.
2.
3.
update uvd_actions
set 
notes = trim(TRAILING FROM notes);
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Размер строки больше размера поля? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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