|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.11.2010, 13:23 | #1 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 52
|
несовместимые типы данных :(
Добрый день, возникла небольшая проблема с ораклом.
в двух словах так. есть две таблицы. 1) Images ID_IMAGE NUMBER IMAGE BLOB PARENT_ID NUMBER PERS_ID NUMBER IMG_NAME VARCHAR2(50 BYTE) COMMENTS VARCHAR2(200 BYTE) IS_SELECTABLE NUMBER 2) Rul ID_RUL NUMBER ID_IMAGE NUMBER PROT_KIND_ID NUMBER в есть пара записей: 1)Images Код:
Код:
и все изображения связанные с конкретным PERS_ID в примере он равен 10000354 итак, пишу запрос, две разновидности одного и того же запроса: Код:
123 null null (BLOB) нижняя часть выдает три, тоже как и должна 3 skeleton2 скелет с мясцом (BLOB) 1 Big man гигант (BLOB) 2 Skeleton Скелет человека1 (BLOB) но вот когда я ставлю union между ними и вызываю запрос то мне выдается не совсем понятная ошибка ORA-00932: несовместимые типы данных: ожидалось -, получено BLOB 00932. 00000 - "inconsistent datatypes: expected %s got %s" в принципе ошибка то понятна, он русским по белому пишет что "несовместимые типы данных" но что за ожидаемый тип "-" ? во втором варианте запроса та же фигня выходит... если результат второго запроса использовать в качестве источника данных то все равно вылазит эта ошибка Последний раз редактировалось eldalex; 16.11.2010 в 13:29. Причина: чет вроде равнял равнял, а все равно все в кривь да в кось) |
17.11.2010, 09:25 | #2 |
Пользователь
Регистрация: 13.10.2010
Сообщений: 96
|
Не исключено, что в одном из подзапросов происходит преобразование BLOB во что-нибудь.
Попробуй исключить это поле из запросов, дабы убедиться, что дело действительно в нем. Если это так, то посмотри, что выбирается в 1 и 2 частях запроса, нет ли преобразования
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Стив Макконнелл)
|
17.11.2010, 13:46 | #3 |
Регистрация: 17.11.2010
Сообщений: 3
|
Через union не срабатывает, а вот через union all кушает на ура.
select images.id_image ,img_name ,comments ,image from images where (images.pers_id=10000353) union all select images.id_image ,img_name ,comments ,image from images, rul where (prot_kind_id= 10000302 and rul.id_image=images.id_image); У нас принято оформлять код специальным тэгом - при помощи кнопочки "#". Только... И не значком #. И не РНР-кодом. И не значком цитаты. И не собственными "ручками". Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе... Модератор
Бегемот - это странный медведь...
Последний раз редактировалось mihali4; 17.11.2010 в 15:10. |
17.11.2010, 15:03 | #4 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
а самостоятельно можешь ответить теперь почему без "all" не срабатывало?
обычный юнион (без "all") удаляет дубликаты и не может это сделать по блоб-полю |
17.11.2010, 15:49 | #5 |
Регистрация: 17.11.2010
Сообщений: 3
|
Собственно distinct так же удаляет дубликаты, из-за этого и последней запрос у вас, eldalex, не работает.
Бегемот - это странный медведь...
|
22.11.2010, 14:07 | #6 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 52
|
Ох блин) я уже и забыл сюда заходить спасибо за ответы, но я уже переделал, сделал запрос без выборки blob поля, просто при выборе какого либо значения из полученного списка идет мелкий select blob по выбранному id.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Типы данных С++ | werser | Помощь студентам | 1 | 13.03.2010 18:34 |
Типы данных | psycho-coder | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 04.02.2010 20:03 |
Ошибка про несовместимые типы | SanekIrk | Общие вопросы Delphi | 2 | 08.09.2009 09:47 |
Типы данных??? | Рустам | Общие вопросы Delphi | 10 | 08.11.2007 08:03 |