Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как игнорировать отсутствие таблицы в запросе? / 15 сообщений из 15, страница 1 из 1
04.03.2020, 10:12
    #39933913
TerraUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
Добрый день.

Подскажите пожалуйста, как можно игнорировать отсутствие таблицы в запросе?
Т.е. есть конструкция типа
select * from
(
(select * from a1) union all
(select * from a2) union all
(select * from a3) union all
(select * from a4) union all
(select * from aX)
)
;
Есть ли красивое и удобное решение, что бы получать результат вне зависимости от наличия одной из таблиц a1, a2 и т.д.?

Заранее спасибо.
...
Рейтинг: 0 / 0
04.03.2020, 10:39
    #39933928
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
TerraUser,
формировать запрос динамически

.....
stax
...
Рейтинг: 0 / 0
04.03.2020, 10:48
    #39933935
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
TerraUser
Есть ли красивое и удобное решение, что бы получать результат вне зависимости от наличия одной из таблиц a1, a2 и т.д.?
Генерировать
Код: plsql
1.
2.
3.
4.
5.
6.
create or replace view a_all
as
…
union all
…
…
...
Рейтинг: 0 / 0
04.03.2020, 10:51
    #39933936
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
TerraUser,

о!

в новых версиях появилось 'макроподстановка' SQL_MACRO
можно заюзать

зы
сам не пробовал (и возможно уже не попробую)

.....
stax
...
Рейтинг: 0 / 0
04.03.2020, 13:03
    #39934073
AlexFF__|
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
TerraUser,
Cделать можно все.
Только нужно ли?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create table TEST_USER.TABLE_1 as select 'TABLE_1' name, rownum id, sysdate dt from dual connect by rownum <= 5;
create table TEST_USER.TABLE_2 as select 'TABLE_2' name, rownum id, sysdate dt from dual connect by rownum <= 10;


with table_list as ( select 'TEST_USER' owner, 'TABLE_1' table_name from dual union all
                     select 'TEST_USER' owner, 'TABLE_2' table_name from dual union all
                     select 'TEST_USER' owner, 'TABLE_3' table_name from dual )
  select extract( val, '/ROW/NAME/text()' ).GetStringVal() NAME,
         extract( val, '/ROW/ID/text()' ).GetNumberVal() ID,
         extract( val, '/ROW/DT/text()' ).GetStringVal() DT
    from ( select x.column_value val
             from dba_tables t,
                  table_list l,
                  table ( xmlsequence( dbms_xmlgen.getxmltype( 'select name, id, to_char(dt,''dd.mm.yyyy hh24:mi:ss'') dt from ' || t.owner || '.' || t.table_name ).extract( 'ROWSET/*' ) ) ) x
               where t.owner = l.owner
                 and t.table_name = l.table_name );
...
Рейтинг: 0 / 0
05.03.2020, 12:33
    #39934595
feagor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
TerraUser,

Динамический SQL, а еще сильно подумать нужно ли такое, и не стоит ли пересмотреть архитектуру.
Лучший запрос - простой запрос
...
Рейтинг: 0 / 0
05.03.2020, 13:09
    #39934619
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
Таблицы, из никуда не появляются, и не исчезают сами по себе.

1) В скрипт создания новой таблицы, добавляется обновление глобальной view

2) ddl trigger



p.s. на что только не пойдешь, когда partition table - платная ...
...
Рейтинг: 0 / 0
05.03.2020, 13:11
    #39934625
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
Vadim Lejnin
partition table
Что это такое? Тем более, платное?
...
Рейтинг: 0 / 0
05.03.2020, 13:19
    #39934635
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
Elic
Vadim Lejnin
partition table
Что это такое? Тем более, платное?


Пардон
Partitioning option
...
Рейтинг: 0 / 0
05.03.2020, 13:20
    #39934636
TerraUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
AlexFF__|,Stax , Elic

большое спасибо,
но вопрос именно об игнорировании возникающих ошибок, а не генерации запроса.
Как раз когда таблицы "... исчезают сами по себе." (с) Vadim Lejnin

Есть несколько таблиц доступным по линкам. Но иногда не доступным. И можно ли написать запрос, что бы он не сваливался в ошибку, если не все они доступны?

Ещё раз спасибо.
...
Рейтинг: 0 / 0
05.03.2020, 13:42
    #39934646
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
сделать пайплайн-функцию?
...
Рейтинг: 0 / 0
05.03.2020, 13:42
    #39934647
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
TerraUser
Есть несколько таблиц доступным по линкам.
Это имеет смысл, если недоступность сразу выдает ошибку. Если проблема со связью, настройки сетевых ожиданий в ОС умножаются настройками оракла и могут составлять несколько часов. В plsql штатными средствами не ограничиваются. Кроме того, недоступность может вылезти в процессе выполнения запроса.
Для неустойчивых каналов следует использовать репликацию или другие средства связи.
...
Рейтинг: 0 / 0
05.03.2020, 14:03
    #39934664
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
TerraUser,

1) склеивать (union all) доступные на клиенте

2) формировать тмп табличку из доступных

3) если версия позволит SQL_MACRO

4) репликация и тд

.....
stax
...
Рейтинг: 0 / 0
05.03.2020, 14:14
    #39934670
TerraUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
Stax
TerraUser,

2) формировать тмп табличку из доступных

stax


Так и делаю.
Но вдруг, что то более элегантное и правильное есть...
...
Рейтинг: 0 / 0
05.03.2020, 14:48
    #39934689
TerraUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как игнорировать отсутствие таблицы в запросе?
Leonid Kudryavtsev
сделать пайплайн-функцию?


О, кажется, подходит.
Большое спасибо.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как игнорировать отсутствие таблицы в запросе? / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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