Oracle как найти таблицу по названию
ТЕ у меня есть куча таблиц с множеством строчек, мне нужно найти строку и (или хотябы) имя таблицы
в которое поле содержит что то заданое.
Т.е. это какой то селект где в условии поиска я не знаю имя поля в котором ищу и имя таблицы.
хочу select . from .. where tablespace.*.* like ‘some’
Хотелось бы увидеть запрос на sql если такое возможно.
Re: Oracle. Найти в tablespace таблицу, где поле содержи ‘s
От: | Mckey |
Дата: | 17.01.08 13:12 |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>ТЕ у меня есть куча таблиц с множеством строчек, мне нужно найти строку и (или хотябы) имя таблицы
А>в которое поле содержит что то заданое.
А>Т.е. это какой то селект где в условии поиска я не знаю имя поля в котором ищу и имя таблицы.
А>хочу select . from .. where tablespace.*.* like ‘some’
А>Хотелось бы увидеть запрос на sql если такое возможно.
Насколько я знаю PLSQL Developer такое может, там же можно посмотреть каким запросом он это делает — вот только я не уверен что это омжно сделать одним запросом.
Делай добро и бросай его в воду.
Re: Oracle. Найти в tablespace таблицу, где поле содержи ‘s
От: | wildwind |
Дата: | 17.01.08 13:13 |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>ТЕ у меня есть куча таблиц с множеством строчек, мне нужно найти строку и (или хотябы) имя таблицы
А>в которое поле содержит что то заданое.
А>Т.е. это какой то селект где в условии поиска я не знаю имя поля в котором ищу и имя таблицы.
А>хочу select . from .. where tablespace.*.* like ‘some’
А>Хотелось бы увидеть запрос на sql если такое возможно.
Нет, именно такое невозможно.
Если ты пытаешься реализовать полнотекстовый поиск, то начни с чтения документации на эту тему. Если нет, то постарайся объяснить свою исходную задачу так, чтобы было понятно другим.
P.S. Tablespace тут ни причем, не поминай его всуе.
Re[2]: Oracle. Найти в tablespace таблицу, где поле содержи
От: | Аноним |
Дата: | 17.01.08 13:21 |
Оценка: |
Здравствуйте, wildwind, Вы писали:
W>Нет, именно такое невозможно.
W>Если ты пытаешься реализовать полнотекстовый поиск, то начни с чтения документации на эту тему. Если нет, то постарайся объяснить свою исходную задачу так, чтобы было понятно другим.
W>P.S. Tablespace тут ни причем, не поминай его всуе.
вобщем я не программирую на sql, знаю простейшие запросы только.
мне как админу понадобилось найти среди кучи таблиц ту в которой имеется строка с некоторым содержимым.
Причем имя поля я не знаю.
По идее я могу пройтись изменяя имя таблицы (вручную) в таком запросе по всем таблицам (соответсвено выполняя запрос каждый раз после изменения имени таблицы)
select "INFODBA"."PWORKSPACEOBJECT"."PUID", "INFODBA"."PWORKSPACEOBJECT"."POBJECT_NAME", "INFODBA"."PWORKSPACEOBJECT"."POBJECT_DESC", "INFODBA"."PWORKSPACEOBJECT"."POBJECT_TYPE", "INFODBA"."PWORKSPACEOBJECT"."POBJECT_APPLICATION", "INFODBA"."PWORKSPACEOBJECT"."VLA_34_6", "INFODBA"."PWORKSPACEOBJECT"."VLA_34_7", "INFODBA"."PWORKSPACEOBJECT"."VLA_34_9", "INFODBA"."PWORKSPACEOBJECT"."PREVISION_LIMIT", "INFODBA"."PWORKSPACEOBJECT"."PREVISION_NUMBER", "INFODBA"."PWORKSPACEOBJECT"."RWSO_THREADU", "INFODBA"."PWORKSPACEOBJECT"."RWSO_THREADC", "INFODBA"."PWORKSPACEOBJECT"."PDATE_RELEASED" from "INFODBA"."PWORKSPACEOBJECT" where "INFODBA"."PWORKSPACEOBJECT"."PUID" like 'some_id'
Хотелось бы автоматизировать этот процесс
Re[3]: Oracle. Найти в tablespace таблицу, где поле содержи
От: | Аноним |
Дата: | 17.01.08 13:47 |
Оценка: |
Здравствуйте, Аноним, Вы писали:
..skip..
А>Хотелось бы автоматизировать этот процесс
Забыл . имя поля я тоже не знаю , мне придется выполнять на каждое поле запрос отдельный
(число таблиц)*(число полей) запросов — мне кажется многовато для ручной работы
Re[4]: Oracle. Найти в tablespace таблицу, где поле содержи
От: | _Oleg_ |
Дата: | 17.01.08 14:27 |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>..skip..
А>>Хотелось бы автоматизировать этот процесс
А>Забыл . имя поля я тоже не знаю , мне придется выполнять на каждое поле запрос отдельный
А>(число таблиц)*(число полей) запросов — мне кажется многовато для ручной работы
Ну можно сократить поиск по типам поля.
К примеру, если это число, то не искать его в строковых полях.
Надо знать что за данные и где они теоретически могут лежать.
Re[5]: Oracle. Найти в tablespace таблицу, где поле содержи
От: | Аноним |
Дата: | 17.01.08 14:35 |
Оценка: |
Здравствуйте, _Oleg_, Вы писали:
_O_>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Аноним, Вы писали:
А>>..skip..
А>>>Хотелось бы автоматизировать этот процесс
А>>Забыл . имя поля я тоже не знаю , мне придется выполнять на каждое поле запрос отдельный
А>>(число таблиц)*(число полей) запросов — мне кажется многовато для ручной работы
_O_>Ну можно сократить поиск по типам поля.
_O_>К примеру, если это число, то не искать его в строковых полях.
_O_>Надо знать что за данные и где они теоретически могут лежать.
Да скрипт товарищу нужен, незнаю как в оракле
простой цикл в цикле: перебор объектов sysobjects и перебор всех колонок, формирование для каждой колонки текста нужного селекта.
Товарищ копипастнет результат в окошко sql developer’a запустит его и посмотрит выдачу.
Re: Oracle. Найти в tablespace таблицу, где поле содержи ‘s
От: | AnSiSr |
Дата: | 18.01.08 04:05 |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Хотелось бы увидеть запрос на sql если такое возможно.
Используйте динамический sql и запросы к словарю: all_all_tables, all_tables_cols что-то типа такого. Очень просто решается.
Re: Oracle. Найти в tablespace таблицу, где поле содержи ‘s
От: | bloom | |
Дата: | 18.01.08 09:19 | |
Оценка: | 4 (1) |
Здравствуйте, Аноним, Вы писали:
Хотелось бы уточнить: вам действительно нужен поиск по табличному пространству? а может по схеме ?
SELECT owner, table_name, colum_name, data_type FROM dba_tab_cols WHERE owner = 'SOME_SCHEMA'
если действительно табличное пространство:
SELECT cols.owner, cols.table_name, cols.column_name, cols.data_type FROM dba_tables tabs INNER JOIN dba_tab_cols cols ON cols.table_name = tabs.table_name AND cols.owner = tabs.owner WHERE tabs.tablespace_name = 'SOME_TABLESPACE'
ну и тогда что то типа:
DECLARE l_search_str VARCHAR2(2000) := 'MS_DATA_KIE'; l_tmp_count NUMBER; BEGIN FOR rec IN ( . тут запрос оговоренный выше . ) LOOP -- тут в зависимости от типа можно составлять различные условия отбора (не для всех типов можно применить LIKE). -- но не будем усложнять себе жизнь :) BEGIN l_tmp_count := 0; EXECUTE IMMEDIATE 'begin ' || ' SELECT COUNT(*) INTO :p ' || ' FROM ' || rec.owner || '.' || rec.table_name || ' WHERE ' || rec.column_name || ' LIKE ' || '''' || l_search_str || '''' || ';' || 'end;' USING OUT l_tmp_count; EXCEPTION WHEN OTHERS THEN NULL; -- нету LIKE дял типа и т.д. END; IF l_tmp_count <> 0 THEN dbms_output.put_line('Table: ' || rec.table_name || ' column: ' || rec.column_name); END IF; END LOOP; END;
Найти таблицу по запросу имени столбца в Oracle SQL Developer
Я хочу запросить базу данных для имени столбца, чтобы найти таблицу, не зная имя таблицы (существует огромное количество таблиц) Сейчас я работаю с огромной базой данных и пытаюсь найти, где, на основе кода CFML и URL-адреса проблемной страницы, веб-сайт извлекает информацию. Я новичок в ColdFusion, но вижу, что URL-адрес содержит несколько идентификационных ссылок с именами столбцов. Некоторые из них мне удалось найти легко и другие, я понятия не имею, поскольку имена столбцов довольно расплывчаты, например. ‘NTASKID’. Мой план состоит в попытке запросить базу данных с использованием имени столбца, но Google представил мне запросы, требующие знания имени таблицы, которого у меня нет. Я думаю, что эти примеры могли быть более полезными для денормализованных таблиц (?). Если кто-то знает такой запрос, было бы здорово. Кроме того, может кто-нибудь прокомментировать, иду ли я на правильном пути расследования здесь?
SunnyNewb 25 фев. 2013, в 18:55
Поделиться
попробуйте select * from ALL_TABLES
juergen d 25 фев. 2013, в 17:05
просто чтобы прояснить, вы имеете в виду что-то вроде: SELECT * FROM database_name, где столбец похож на ‘% task%’;
SunnyNewb 25 фев. 2013, в 17:11
Я не очень подходит для Oracle, но Oracle должен содержать таблицу ALL_TABLES которая содержит информацию о ваших таблицах
juergen d 25 фев. 2013, в 17:20
Есть ли в коде cfml sql внутри тега cfquery?
Dan Bracuk 25 фев. 2013, в 17:24
Они немного сложнее на данный момент, потому что я изучаю cfml по мере продвижения, но я тоже сейчас исследую это, ура.
Как получить список таблиц в базе данных Oracle?
Или можешь вывести все необходимые поля. Узнать их можно:
а что в них записано можно понять по названию этих полей.
Отслеживать
ответ дан 31 авг 2016 в 10:31
113 7 7 бронзовых знаков
- oracle
- sql
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
INFORMATION_SCHEMA и Oracle
Информационная схема ( INFORMATION_SCHEMA ) является стандартным представлением метаданных в языке SQL. Исторически каждый производитель реляционных СУБД предоставлял системные таблицы, которые содержали мета-информацию — имена таблиц, столбцов, ограничений, типы данных столбцов и т.д. Структура и состав системных таблиц могут меняться в разных версиях продукта, однако поддержка информационной схемы дает возможность менять структуру системных таблиц без изменения способа доступа к метаданным. Другим преимуществом применения INFORMATION_SCHEMA является то, что запросы к метаданным не зависят от используемой СУБД.
Из ведущих производителей, пожалуй, только Oracle не поддерживает INFORMATION_SCHEMA. Справедливости ради следует сказать, что Oracle предоставляет возможность использовать системные представления вместо непосредственного обращения к системным таблицам, что также позволяет безопасно изменять структуру системных таблиц.
Приведем ряд типичных запросов в стандартном варианте и для Oracle.
1. Список таблиц базы данных (текущей)
Консоль
Выполнить