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

зы. В запросе имеется группировка по SUBSTR( string , 1, 2) или CHAR( string , 2).
...
Рейтинг: 0 / 0
29.09.2004, 05:42
    #32715717
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SUBSTR vs CHAR()
LEFT(string, 2) возвращает мемо поле. SUBSTR(string, 1, 2) и CHAR(string, 2) по идее должны работать одинаково, но на всякий случай проверь возвращаемый тип.
...
Рейтинг: 0 / 0
29.09.2004, 08:06
    #32715767
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SUBSTR vs CHAR()
Про LEFT я тоже знаю. Интересно было почему SUBSTR & CHAR так себя ведут.
...
Рейтинг: 0 / 0
29.09.2004, 08:08
    #32715769
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SUBSTR vs CHAR()
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
29.09.2004, 08:20
    #32715773
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SUBSTR vs CHAR()
Нет, никаких исключений, варнингов... вообще ничего. (Это, кстати, тоже была первая моя мысль.) Причем если смотреть активность СУБД, то и в том и в другом случае запрос выполняется (это видно по блокировкам и т.д. и т.п. в DB2Monitor'e), но результат выдает только версия с SUBSTR.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SUBSTR vs CHAR() / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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