powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Interbase - запрос с литералами
15 сообщений из 15, страница 1 из 1
Interbase - запрос с литералами
    #38778132
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день

Начал изучать Interbase и появился вопрос ответа на который я не нашёл в гугле (и в EmbedSQL.pdf тоже). Имеется следующий запрос:

Код: sql
1.
2.
3.
4.
5.
select rdb$generator_name as name, 'SEQUENCE' as typ from rdb$generators 
where upper(rdb$generator_name) like '%RD%' 
union all 
select rdb$index_name as name, 'INDEX' as typ from rdb$indices 
where upper(rdb$index_name) like '%RD%';



Если в обоих частях запроса написать 'INDEX' (или 'SEQUENCE', или 'что-то') то запрос работает. Если же строки разные (как в примере) то выдаётся ошибка:

Data type unknown.

Не подскажете как задать спецификацию типа в данном случа (или как-то по-другому заставить запрос работать)?
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778134
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например так:

Код: sql
1.
2.
3.
4.
5.
select rdb$generator_name as name, cast('SEQUENCE' as varchar(10)) as typ from rdb$generators
where upper(rdb$generator_name) like '%RD%' 
union all 
select rdb$index_name as name, cast('INDEX' as varchar(10)) as typ from rdb$indices
where upper(rdb$index_name) like '%RD%';
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778161
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dark Elfupper(rdb$generator_name) like '%RD%' про containing еще погляди сразу, а то эмуляция контайнинга через лайк выглядит вырвиглазно
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778288
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Вам обоим большое за ответы.

containing действительно классная вещь! Ну и STARTING WITH тоже :)
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778418
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того, ответь: зачем это у тебя один запрос с union all, а не два отдельных запроса?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778474
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dark Elfwhere upper(rdb$index_name) like '%RD%'
если тебе нужны только RDB$ таблицы, то это избыточно, и надо просто писать
where rdb$index_name starting with 'RDB$'
имена системных таблиц всегда upper.
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778478
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dark Elf,
насчет rdb$ и rdb$index_name - имя индекса по ПК и ФК не всегда может быть 'rdb$%'.
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778632
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovКроме того, ответь: зачем это у тебя один запрос с union all, а не два отдельных запроса?


Это я пишу свою утилиту для поиска в различных СУБД (уже поддерживает 12 баз, Interbase в процессе добавления, критика очень даже привествуется).

http://habrahabr.ru/company/host-tracker/blog/210434/
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778643
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dark ElfDimitry Sibiryakovответь: зачем это у тебя один запрос с union all, а не два отдельных запроса?
Это я пишу свою утилиту для поиска в различных СУБД (уже поддерживает 12 баз, Interbase в
процессе добавления, критика очень даже привествуется).

Я не спрашивал "что ты пишешь", я спросил "почему это один запрос, а не два отдельных".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778710
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovDark Elfпропущено...

Это я пишу свою утилиту для поиска в различных СУБД (уже поддерживает 12 баз, Interbase в
процессе добавления, критика очень даже привествуется).

Я не спрашивал "что ты пишешь", я спросил "почему это один запрос, а не два отдельных".


Ну я как бы выдаю все найденные объекты БД в одну таблицу - одним запросом собранным с помощью union all это делать удобнее хотя я конечно могу быть неправ.
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38778860
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dark Elfя как бы выдаю все найденные объекты БД в одну таблицу
Последовательности и индексы в одной таблице? Убиться...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38779283
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dark Elfкритика очень даже привествуется).

ОК. Как сделать, чтобы программа работала?
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38779284
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovDark Elfя как бы выдаю все найденные объекты БД в одну таблицу
Последовательности и индексы в одной таблице? Убиться...


Если отмечены галочки что нужно выдавать оба типа объектов то почему нет.

Gallemar с ошибкой разбираюсь
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38779623
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dark ElfЕсли отмечены галочки что нужно выдавать оба типа объектов то почему нет.

Хотя бы потому, что цикл по галочкам с посылкой отдельных запросов программируется проще,
чем сборка одного мегазапроса.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Interbase - запрос с литералами
    #38779940
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovDark ElfЕсли отмечены галочки что нужно выдавать оба типа объектов то почему нет.

Хотя бы потому, что цикл по галочкам с посылкой отдельных запросов программируется проще,
чем сборка одного мегазапроса.


Поверьте на F# (он же переделанный Objective CAML), да и прочих функциональных языках программирования, это делается очень легко.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Interbase - запрос с литералами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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