Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Db2 запрос с ":" - как сделать чтоб работало?! / 19 сообщений из 19, страница 1 из 1
31.01.2005, 10:37
    #32891765
MistProgram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Привет, друзья!
Проблема в том, что при создании зарпоса к DB2 некорректно обрабатываются :.
Понимаю, что конечно же дело в том, что таким образом в запрос засовываются разные параметры и прочие штуки.
Вопрос: как сделать, чтобы : отрабатывался как символ 58, а не как служебный символ.
Вариант ||CHR(58)|| не проходит. ||X58|| тоже. cast (... as varchar(100)) тоже.
Prepare не пробовал, но мне нужно без prepare просто запросом.
Всё уже перепробовал.
А запрос вот такой:
insert into T1 (str1) values ('abc: def f _A')
...
Рейтинг: 0 / 0
31.01.2005, 10:40
    #32891774
MistProgram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
HTML пробелы съел. Реально между f и _A много пробелов (штук 15)
insert into T1 (str1) values ('abc: def f _A')
...
Рейтинг: 0 / 0
31.01.2005, 10:48
    #32891791
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
не пойму в чем собственно проблема?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
connect to test

   Database Connection Information

 Database server        = DB2/NT  8 . 2 . 0 
 SQL authorization ID   = DB2ADMIN
 Local database alias   = TEST


create table ts ( id int not null, name char( 30 ), constraint pk primary key(id) )
DB20000I  The SQL command completed successfully.

insert into ts values ( 1 ,'abc: def f _A')
DB20000I  The SQL command completed successfully.

select * from ts

ID          NAME                          
----------- ------------------------------
           1  abc: def f _A                 

   1  record(s) selected.
...
Рейтинг: 0 / 0
31.01.2005, 11:05
    #32891815
MistProgram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Я сам не понимаю. Вот что я пробую и не получается

insert into T1 (A) values ('NEWGATE: TEST ACCOUNT3 _A').

А потом пытаюсь вынуть назад. Вот что вываливается при попытке сдалать из вынутого XML:
java.lang.RuntimeException: NEWGATE: TEST ACCOUNT3 has illegal symbol with code 26

Во всех клиентах (Embarcadero, Quest Central for DB2) тоже _A кусок не виден.

DB2 8 под Винды. Вроде как не патченная.
...
Рейтинг: 0 / 0
31.01.2005, 11:07
    #32891823
MistProgram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Гы, а на солярке DB2 8 всё работает нормально...
...
Рейтинг: 0 / 0
31.01.2005, 11:19
    #32891848
MistProgram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Ситуация становится всё более запутанной. Вставляется видимо нормально всё , а вот вынуть не получается в случае использования драйвера DB2 напрямую. Embarcadero через ODBC вытаскивает строку нормально. Quest Central и Java JDBC Driver ver2 выдают без окончания и с этим дурацким символом 26. Так что что-то в выдаче данных через Native драйвер, блин...
...
Рейтинг: 0 / 0
31.01.2005, 11:22
    #32891853
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Что, даже из CLP не получается?... что-то не верится... У меня ни разу нигде такогоне наблюдалось. Похоже что ошибка где-то в другом месте.
...
Рейтинг: 0 / 0
31.01.2005, 11:57
    #32891960
MistProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Как забавно. Вот что выдаёт процессор командной строки DB2 ver 8.1.0
Две таблицы T1 & T2. В первой много записей, во второй- одна. Обратите внимание что выдаётся там где одна, т.е. для таблицы T2. Видно, что DB2 кривеет уже на физической структуре таблицы. ТАк что я думаю что проблемы с DB2 под винды. Или надо 8.2.0 поставить. Интерсно , что я такого сделал чтобы DB2 окривела?! ))))))))))))))))))))))))))))))))))))))))))))

db2 => select * from T1

A
----------------------------------------------------------------------------------------------------
NEWGATE: TEST ACCOUNT3 _A
NEWGATE: TEST ACCOUNT3 _A
NEWGATE: TEST ACCOUNT3 _A
NEWGATE:: TEST ACCOUNT3 _A
NEWGATE::TEST ACCOUNT3 _A
NEWGATE: TEST ACCOUNT3 _A
NEWGATE: TEST ACCOUNT767 _A

7 записей выбрано.

db2 => select * from T2

A








------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
----------------------------------------
NEWGATE: TEST ACCOUNT3 _A









1 записей выбрано.

db2 =>
...
Рейтинг: 0 / 0
31.01.2005, 12:21
    #32892031
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
А что выдаст:
Код: plaintext
1.
2.
describe table t1
describe table t2
...
Рейтинг: 0 / 0
31.01.2005, 12:30
    #32892065
MitProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
gardenmanА что выдаст:
Код: plaintext
1.
2.
describe table t1
describe table t2


Да я просёк - он падит до 1000 символов. В общем комманд дул работает нормально. Проблема в явовском драйвере. Почему-то внутри этого
abc: qwqw re _A
он видит какой -то управляющий символ или что-то подобно.
...
Рейтинг: 0 / 0
31.01.2005, 12:32
    #32892072
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
как вариант, может что-нить с перекодировкой связано? к сожалению я в яве - пас! :(
...
Рейтинг: 0 / 0
31.01.2005, 12:38
    #32892096
MistProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Если бы перекодировка, тогда бы всё слово было бы кривое. А так только конец рубится. Плюс кириллицы вообще нет, так что тут скорее всего чисто.
...
Рейтинг: 0 / 0
31.01.2005, 12:42
    #32892118
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
На явовский драйвер тоже грешить не стоит. Command Center тоже на яве сделан. Из него ведь все нормально вставляется. Очевидно ошибка настолько дубовая и абсурдная что с первого взгляда даж и не видать. Свежий взгляд нужен.
...
Рейтинг: 0 / 0
31.01.2005, 13:06
    #32892184
MistProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
gardenmanНа явовский драйвер тоже грешить не стоит. Command Center тоже на яве сделан. Из него ведь все нормально вставляется. Очевидно ошибка настолько дубовая и абсурдная что с первого взгляда даж и не видать. Свежий взгляд нужен.

Кажись нащупал. С оракла приходят данные. В них символ _ имеет код 142 , а не 95. В итоге проблемы. Попытаюсь понять, то ли в базе уже 26 из 142 сделано. Либо DB2 реально возвращает 142, а уже Java драйвер делает из 142 -> 26.
...
Рейтинг: 0 / 0
31.01.2005, 14:18
    #32892442
MistProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Короче 142-й символ ложится в базу в неизветном виде. При селекте DB2 jdbc драйвером он уже 26-й, причём спереди и сзади символы в порядке , т.е. вместо [_] -> [chr(26)].

Грусто.
...
Рейтинг: 0 / 0
31.01.2005, 14:22
    #32892456
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
А данные Orcle->DB2 чем перегоняются?
...
Рейтинг: 0 / 0
31.01.2005, 14:23
    #32892459
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
А кодировки в Оракле и ДБ2 совпадают?
...
Рейтинг: 0 / 0
31.01.2005, 14:48
    #32892559
MistProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Честно говоря не знаю. Прилетают только дампы таблиц. А чёрт его знает, может из ворда cut&paste , вот и появляются такие вот штук. Английская контора, так что для них проблемы кодировки не существует, только Юникод-не юникод.
...
Рейтинг: 0 / 0
01.02.2005, 12:06
    #32894225
nkulikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Db2 запрос с ":" - как сделать чтоб работало?!
Кстати после выхода 8-ки сразу вышел fp на jdbc driver. Так что сидеть на гольной 8.1 не очень правильно...
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Db2 запрос с ":" - как сделать чтоб работало?! / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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