Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Динамическое имя таблицы в запросе  [new]
whitish
Member

Откуда:
Сообщений: 8
Привет всем!
Необходимо написать запрос, в котором после FROM должно идти имя таблицы - результат другого запроса.

Т.е.:
select .....
from <table_name>
where ...

<table_name> является результатом выполнения запроса вида:

select distinct 'PRD_US_MGAGE_EUCLID.METRIC2D_' || id || '_1_HOUR' from prd_us_mgage_euclid.SITEPROFILE t
where t.sitetitle = 'HP ePrint Mobile Site'
and activityid = 10021

Подскажите плз, как это реализовать?

Спасибо!
17 янв 11, 20:25    [10087114]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 64000
Блог
Проще всего это сделать с клиента, можно воспрользоваться одним из ответов прикреплённого вверху форума топика "Тop вопросов по Oracle", но правильнее всего - понять, что в 99.9% cлучаев делать это не "требуется", а "вредно".
17 янв 11, 20:30    [10087124]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
whitish
Member

Откуда:
Сообщений: 8
Интересно, в каком из вопросов Вы нашли ответ.

Мне это нужно, поскольку название таблицы изменяется часто, и вручную переделывать ЕТЛ напряжно.
17 янв 11, 20:37    [10087142]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 64000
Блог
(делая неуловимый жест рукой) Вам этого не нужно...
17 янв 11, 20:43    [10087155]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
whitish
Member

Откуда:
Сообщений: 8
не засаряйте плз тему, елси нечего ответить по делу.
17 янв 11, 20:46    [10087167]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
bdsm_sql
Member

Откуда:
Сообщений: 948
если ETL, то могя и нужно - пусть смотрит в сторону dbms_sql и EXECUTE IMMEDIATE
документация в помощь. большего вы тут не получите
17 янв 11, 20:47    [10087170]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7433
whitish,

SQL*PLUS script
set pagesize 0
set linesize 300
set feedback off
set term off
spool script.sql

select distinct 'PRD_US_MGAGE_EUCLID.METRIC2D_' || id || '_1_HOUR' from prd_us_mgage_euclid.SITEPROFILE t
where t.sitetitle = 'HP ePrint Mobile Site'
and activityid = 10021
/

spool off
@script.sql
17 янв 11, 20:51    [10087186]     Ответить | Цитировать Сообщить модератору
 EXOTIQUES IMMÉDIATE  [new]
-2-
Member

Откуда:
Сообщений: 15330
select owner, object_Type, parameter, value
from (
   select owner, object_type,
      'fn:collection("oradb:/'||owner||'/'||object_name||'")' oname 
   from all_objects 
   where object_name='NLS_SESSION_PARAMETERS' and namespace=1
) ao
, xmltable(ao.oname columns parameter varchar2(20), value varchar2(20)) xt
where parameter like '%DATE%'
;

OWNER                          OBJECT_TYPE         PARAMETER            VALUE                
------------------------------ ------------------- -------------------- -------------------- 
SYS                            VIEW                NLS_DATE_FORMAT      DD.MM.RRRR hh24:mi   
SYS                            VIEW                NLS_DATE_LANGUAGE    RUSSIAN              
PUBLIC                         SYNONYM             NLS_DATE_FORMAT      DD.MM.RRRR hh24:mi   
PUBLIC                         SYNONYM             NLS_DATE_LANGUAGE    RUSSIAN              
17 янв 11, 20:52    [10087194]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 64000
Блог
bdsm_sql
если ETL, то могя и нужно

Ага. На Standart Edition и на объёмах, летающих без знакомства с основами СУБД. (с) Станиславский.
17 янв 11, 22:24    [10087503]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
Не надо тебе это
Guest
bdsm_sql
если ETL, то могя и нужно - пусть смотрит в сторону dbms_sql и EXECUTE IMMEDIATE
документация в помощь. большего вы тут не получите


тебе это не надо делать. Динамическое имя таблице это плохо не эффективно. Признак плохой архитектуры. Поэтому тебе не надо.
17 янв 11, 22:57    [10087570]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54390
Обычно тот, кому действительно нужно динамически задавать имя таблицы в запросе, достаточно знает возможности БД для решения подобного вопроса.
17 янв 11, 23:30    [10087644]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
whitish
не засаряйте плз тему, елси нечего ответить по делу.

(чисто, по - делу ) ваша тема, в контексте oracle rdbms, суть нонсенс.
строго говоря - такого, тупо, не бывает (а-ля живой труп)
18 янв 11, 11:57    [10089472]     Ответить | Цитировать Сообщить модератору
 Re: Динамическое имя таблицы в запросе  [new]
nikonian
Member

Откуда: город на Неве
Сообщений: 58
whitish
Мне это нужно, поскольку название таблицы изменяется часто, и вручную переделывать ЕТЛ напряжно.

Расскажите подробнее, если не секрет, непонятно, причем тут ETL. Судя по куску запроса "from prd_us_mgage_euclid.SITEPROFILE t
where t.sitetitle = 'HP ePrint Mobile Site'" Вам достаточно сделать одну таблицу с доп. полем site_profile_id и выбирать оттуда с фильтром по этому id (джойн с prd_us_mgage_euclid.SITEPROFILE для фильтра по sitetitle).
18 янв 11, 14:01    [10090743]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить