Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как подставить имя таблицы через Select [D6, Oracle]


Radimir ©   (2002-08-06 10:35:00) 

Господа, помогите с запросом. Надо в запросе типа:
Select Column1 from Table1
Table1 подставить как результат другого Select. Другими словами есть таблица содержащая имена других таблиц и надо их сначала выбрать оттуда, а затем выбрать из них.
Пробовал вместо Table1 подставлять подзапрос типа (Select Column2 from Table2 Where Column3 = ...), где в Column2 хранятся имена таблиц. Ничего не получилось. Пробовал сохранять Select имени таблицы в переменную и эту переменную потом подставлять после From. Тоже не пошло.
Я понимаю, что вопрос детский, но в Helpe ничего найти не удалось, поиск по сайту тоже ничего не дал. Пожалуйтс, если не трудно подскажите или хотя бы ссылку на это дайте.
Заранее благодарен.


dimis   (2002-08-06 12:38:00) [1]

Oracle вполне поймет запрос такого вида :
select * from (select col1 from table 1 where )
только не надо передавать в каческве параметра имя таблицы. Это в принципе можно сделать с помощью динамического SQL и хранимых процедур.
Но в твоем случае лучще просто самому составить Sql запрос на клиенте
Query.Add();


Radimir   (2002-08-06 12:04:00) [2]

Большое спасибо, так все работает. Но все же интересно, а с помощью SQL можно сделать то же самое?


3JIA9I CyKA   (2002-08-06 11:43:00) [3]

Значит не покатит. Пример-то для TSQL


Radimir   (2002-08-06 11:01:00) [4]

> 3JIA9I CyKA - он пишет:
ORA-00933: SQL command not properly ended

> ЮЮ надо попробовать (я пробовал в ХП сделать имя таблицы как входящий параметр - Oracle пишет, что INVALID :( ), но думаю в запросе должно заработать


ЮЮ   (2002-08-06 10:42:00) [5]

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


3JIA9I CyKA   (2002-08-06 10:40:00) [6]

select J.Jopa from (select p.Jopa from Popa p) as J
не прокатит?


Наверх

Титульная страница Поиск, карта сайта Написать письмо