Oracle как найти таблицу по названию
Перейти к содержимому

Oracle как найти таблицу по названию

  • автор:

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. Список таблиц базы данных (текущей)

Консоль

Выполнить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *