|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Подскажите, пожалуйста: Можно ли получить список таблиц из запроса (сквозь view тоже нужно уметь) средствами оракла? То есть на вход select на выход список таблиц - есть такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:05 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Cheese))), легко Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:16 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Oleg M.IvanovCheese))), легко Код: plsql 1.
и какой будет список таблиц для запроса select "table_name from dba_tables;"? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:24 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Oleg M.Ivanov, Не список всех таблиц в базе, а список таблиц участвующих в запросе, который я передал, например GetTablesFromQuery('select ... from table1, table2, view1 where ... ') на выход получаю OWNER TABLE1 OWNER TABLE2 OWNER TABLE3 (из view1) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:33 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Cheese))), а.... неправильно понял суть вопроса. Средствами оракла, наверно, не получить. Я в таком случае в текстовом редакторе Ultraedit извращался, т.е. переносил FROM и остаток строки на новую строку, затем убирал все пробелы, кроме одного, затем убирал переносы строк после FROM и пробела, потом сортировал и получалось куча строк типа FROM table1 FROM table2 FROM table3 .... Там, конечно, могут встретиться и FROM (select .... Но такие варианты уже глазами смотришь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:44 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Oleg M.IvanovЯ в таком случае в текстовом редакторе Ultraedit извращался получить список таблиц для Вашего простенького запроса "select table_name from dba_tables;" Ultraedit не поможет ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:52 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Cheese)))список таблиц участвующих в запросезависит от целей ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:55 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Cheese))), из плана ? Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:58 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
копать там Код: plsql 1. 2.
а дальше в *_views и по кругу, по кругу .. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 13:59 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:05 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
123ййCheese))), из плана ? напр данные токо из индекса select empno from emp; ps + пробежатся по линках ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:06 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
-2-Cheese)))список таблиц участвующих в запросезависит от целей Двухзвенка, хочу кэшировать справочники на клиенте на локальном компьютере. Алгоритм предполагаю такой: 1) Получаю хэши запросов справочников 2) Лезу с ними в табличке аля хэш справочника + хэш данных ответа 3) Проверяю есть ли хэш справочника + хэш данных ответа на локальном компе, если совпадает можно не выполнять запрос на сервере и использовать локальный, если хэш данных ответа изменился значит надо перезалить данные в локальный хэш Триггерами отслеживаю изменение справочников и сбрасываю хэш данных ответа для пересчета. хэш справочника соответственно соответственно должен иметь связь со списком таблиц для отслеживания инвалидации. Можно было бы руками отслеживать в каком запросе какие таблицы, но боюсь долго не протянет такая система, поэтому хочется всё это автоматизировать. 123ййCheese))), из плана ? Код: plsql 1. 2. 3.
Думал об этом, но там нужно еще из индексов в таблицы выходить + трансформации (не уверен что если оптимизатор выкинул таблицу по ключам, то и я не должен ее отслеживать). orawishкопать там Код: plsql 1. 2.
а дальше в *_views и по кругу, по кругу .. Спасибо, наверное рабочий вариант, только думал оракл уже умеет отдавать инфу такую, а это всё окольные пути какие-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:10 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
Cheese)))отслеживаю изменение справочниковQRCN ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2019, 14:13 |
|
Получить список таблиц из запроса
|
|||
---|---|---|---|
#18+
-2-Cheese)))отслеживаю изменение справочниковQRCN Хочется воспользоваться данным механизмом, но вот какая штука: Механизм в описание предполагает трехзвенку, где средний слой кэширует справочники и соответственно регает запросы, у меня предполагается справочники хранить на клиентах и среднего слоя нет - двухзвенка, клиенты регать справочники не будут. Можно зарегать справочники из pl/sql, но если программист клиента изменил запрос справочника, то всё поехало, помнить об этом этом механизме постоянно - не вариант. Выход был скрыть запросы во view, но QRCN не поддерживает view. Можно из клиента делать запрос во view, а чтобы регать в QRCN доставать запрос для view из словаря - но это опять костыли какие-то. Может есть более красивое решение для двухзвенки с QRCN или я что-то не так понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 12:00 |
|
|
start [/forum/topic.php?fid=52&msg=39813024&tid=1882495]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 456ms |
0 / 0 |