powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SUBSTR vs CHAR()
5 сообщений из 5, страница 1 из 1
SUBSTR vs CHAR()
    #32709753
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая разница между SUBSTR( string , 1, 2) и CHAR( string , 2)?
Дело в том, что со второй функцией из сервлета не возвращаются строки, а с первой - всё нормально. При этом, если запрос с первой и второй функцией выполнять в каком нибудь скуль эдиторе - оба возвращают результаты нормально.
То же самое происходит и с LEFT( string , 2)
Наперед: все буферпулы и т.д. и т.п. подкручены - есть ведь результат из интерактивных скуль эдиторов...

зы. В запросе имеется группировка по SUBSTR( string , 1, 2) или CHAR( string , 2).
...
Рейтинг: 0 / 0
SUBSTR vs CHAR()
    #32715717
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LEFT(string, 2) возвращает мемо поле. SUBSTR(string, 1, 2) и CHAR(string, 2) по идее должны работать одинаково, но на всякий случай проверь возвращаемый тип.
...
Рейтинг: 0 / 0
SUBSTR vs CHAR()
    #32715767
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про LEFT я тоже знаю. Интересно было почему SUBSTR & CHAR так себя ведут.
...
Рейтинг: 0 / 0
SUBSTR vs CHAR()
    #32715769
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
left, очевидно, возвращает varchar(4000), а точнее

Код: plaintext
1.
2.
3.
4.
The result of the function is:
v VARCHAR( 4000 ) if the argument is VARCHAR (not exceeding  4000  bytes) or CHAR
v CLOB(1M) if the argument is CLOB or LONG VARCHAR 
v BLOB(1M) if the argument is BLOB.

CHAR(string, n):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Characterto Character

character-expression : An expression that returns a value that is
of the CHAR, VARCHAR, LONG VARCHAR, or CLOB data type.

integer : The length attribute of the resulting fixed-length
character string. The value must be between  0  and  254 .

If the length of the character expression is less than the
length attribute of the result, the result is padded with
blanks up to the length of the result.

If the length of the character expression is greater than
the length attribute of the result, the result is truncated.
A warning is returned (SQLSTATE  01004 ), unless the truncated
characters were all blanks, and the character expression was
not a long string (LONG VARCHAR or CLOB).

Для SUBSTR таблица слишком велика, чтобы мне было не лень сюда ее копировать.

Мое мнение таково: в данном контексте обе функции возвращают результат CHAR(2), а разница в том, что CHAR(string,2) делает warning (SQLSTATE 01004). Получается, что жаба выбрасывает исключение???
...
Рейтинг: 0 / 0
SUBSTR vs CHAR()
    #32715773
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, никаких исключений, варнингов... вообще ничего. (Это, кстати, тоже была первая моя мысль.) Причем если смотреть активность СУБД, то и в том и в другом случае запрос выполняется (это видно по блокировкам и т.д. и т.п. в DB2Monitor'e), но результат выдает только версия с SUBSTR.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SUBSTR vs CHAR()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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