|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
Есть задача. Существует выборка по критериям таблиц и определенных полей из системного представления all_tab_columns. Нужно, использовав эту выборку, достать конкретные значения из таблиц, завернув все это в джоб. Селекты из целевых таблиц однотипные. Как это все лучше реализовать? Буду очень признателен за любую интересную идею) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 09:41 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
Динамический SQL. в этом вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 10:10 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
alex-ls, ну динамический SQL да, это один из вариантов. Правда я раньше им не пользовался, поэтому разбираюсь пока, что и как. А есть ли еще какие варианты альтернативные? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 11:47 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
xomjakoffalex-ls, ну динамический SQL да, это один из вариантов. Правда я раньше им не пользовался, поэтому разбираюсь пока, что и как. А есть ли еще какие варианты альтернативные?Да конечно есть альтернативные варианты. Их много, учитывая, что альтернативных толкований такой неряшливой постановки задачи тоже много. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 11:56 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
xomjakoffalex-ls, ну динамический SQL да, это один из вариантов. Правда я раньше им не пользовался, поэтому разбираюсь пока, что и как. А есть ли еще какие варианты альтернативные? Есть. Dynamic SQL ) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 13:25 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
ну если конкретизировать пример. План действий примерно такой: declare v_table_name varchar2; v_column_name varchar2; v_max_val number; cursor cur1 is select table_name, column_name, max_val from all_tab_columns; open cur1 while 1=1 loop fetch cur1.table_name into v_table_name; fetch cur1.column_name into v_column_name;---?????? Execute immediate 'select max('||column_name||') from '||table_name||' return into v_max_val; /*--Блок сравнения if-then-else-end if;*/ end loop; close cur1; end; ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 13:43 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
xomjakoffНужно, использовав эту выборку, достать конкретные значения из таблиц, завернув все это в джоб. Достать можно по-разному, начиная от DSQL и NDS, заканчивая DBMS_XMLGEN, в зависимости от объемов и потребностей. Делать то с данными дальше? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 14:27 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
xomjakoffwhile 1=1 loop что это такое??? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 14:29 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
xomjakoffopen cur1 while 1=1 loop fetch cur1.table_name into v_table_name; fetch cur1.column_name into v_column_name;---?????? Execute immediate 'select max('||column_name||') from '||table_name||' return into v_max_val; /*--Блок сравнения if-then-else-end if;*/ end loop; close cur1; end; если будет ошибка, то курсор закрывать не надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 14:30 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
xomjakoff, Вы лучше приведите тут полную оригинальную постановку задачи, а не Ваш пересказ. А то понимание того, что написали Вы может существенно отличаться от того, что думал постановщик задачи. Неговоря даже о том, что приведенный Вами пример может упасть с ошибкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 14:30 |
|
последовательный select из списка таблиц с записью в переменные
|
|||
---|---|---|---|
#18+
Александр Спелицин, ну оригинальную постановку задачи демонстрировать нет смысла, поскольку она предельно кратка и некорректна. Поэтому исходную постановку задачи пришлось изменить по согласованию с ним. Ее, собственно, я и привел здесь в упрощенном формате. Что именно непонятно в формулировке? Для меня ключевая проблема - использование Dinamic SQL, который, по видимому, необходим в моем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 13:47 |
|
|
start [/forum/topic.php?fid=52&msg=39869973&tid=1882018]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 260ms |
total: | 399ms |
0 / 0 |