Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
|
1 | |
Поиск по БД, возможно?07.07.2011, 12:42. Показов 15689. Ответов 17
Метки нет (Все метки)
Приветствую.
Исследую структуру БД. Делаю селекты, сопоставляю, сверяю. Вот есть не стыковки. Встретил значение реквизита, которое кроме как в этом справочнике нигде не увидел. Это значение очень важно для меня. Я хочу сделать поиск по БД запросом, потому что таблиц более 2600 и смотреть все я не могу. Работаю по сети, у меня есть аккаунт с правом только чтения. Суть. Выбрать имена таблиц в которых в любом из полей в любой строчке есть заданный реквизит. Реально ли написать такой селект?
0
|
07.07.2011, 12:42 | |
Ответы с готовыми решениями:
17
Поиск и замена (Возможно ли?) Не работает поиск (и, возможно, Cortana) Возможно ли организовать поиск по дате? Возможно ли организовать бинарный поиск в двусвязном списке? |
11 / 11 / 0
Регистрация: 05.08.2010
Сообщений: 30
|
||||||
07.07.2011, 13:30 | 2 | |||||
Можно просто перебрать все строковые поля всех таблиц на предмет их значения, например, найти все поля где встречается символ 'A':
1
|
Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
|
07.07.2011, 14:04 [ТС] | 3 |
0
|
11 / 11 / 0
Регистрация: 05.08.2010
Сообщений: 30
|
||||||
07.07.2011, 14:17 | 4 | |||||
Какая версия Oracle? Внутренний подзапрос выполняется?
1
|
07.07.2011, 14:54 | 5 | |||||
ORA-00911: invalid character
странно вообще: на запрос ругается так: Код
ORA-19202: Error occurred in XML processing ORA-00932: inconsistent datatypes: expected NUMBER got BLOB ORA-06512: at "SYS.DBMS_XMLGEN", line 288 ORA-06512: at line 1 Код
ORA-19202: Error occurred in XML processing ORA-00933: SQL command not properly ended ORA-06512: at "SYS.DBMS_XMLGEN", line 288 ORA-06512: at line 1
1
|
Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
|
08.07.2011, 08:11 [ТС] | 6 |
выполняется если убрать ";" после desc. возвратилось 0 строк. Если из первого вашего запроса убрать последнюю ";" то будет другая ошибка:
turbanoff, функцию нужно будет создавать в БД, правильно? Я писал что у меня доступ только на чтение. Нужен вариант когда ничего в структуре БД не поменяется.
0
|
11 / 11 / 0
Регистрация: 05.08.2010
Сообщений: 30
|
|
08.07.2011, 12:26 | 7 |
Возьми например SQL Developer
0
|
Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
|
08.07.2011, 15:20 [ТС] | 8 |
Зачем??
Добавлено через 2 часа 40 минут Простой запрос что я делаю не так?
0
|
11 / 11 / 0
Регистрация: 05.08.2010
Сообщений: 30
|
|||||||||||
08.07.2011, 16:02 | 9 | ||||||||||
Убедись что схема правильная:
1
|
Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
||||||
11.07.2011, 08:15 [ТС] | 10 | |||||
Запрос
0
|
Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
|
11.07.2011, 09:47 [ТС] | 12 |
Да именно, приходиться работать вслепую. Никакой документации или годной информации по этой БД у меня нет.
Добавлено через 1 час 1 минуту Вернее доки есть, только за отдельную плату, а начальство не любит когда платить нужно. Мне необходимо найти связь между заказами и приходом на склад. Я перебираю select'ами с условием на ссылку на ключ заказа. перебираю все таблицы. их более 2к. я на букве "C" еще только)) помогите плз кто знает как автоматизировать, то что я сейчас делаю - делаю против сердца прям. рутина и глупость по моему.
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
11.07.2011, 10:18 | 13 |
В Oracle 3 типа системных view (есть и еще, но сейчас нас это не волнует):
1. user_.... - это "свои" объекты, т.е. те, хозяином которых являешься ты 2. all_... - это твои объекты + те, на которые тебе даны гранты 3. dba_... - это все объекты (обычно сюда имеют доступ только привилегированные пользователи) Описание этих view есть в томе доки под названием Database Reference
1
|
Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
|||||||||||
11.07.2011, 10:39 [ТС] | 14 | ||||||||||
в 1 пункте пусто, в 3й меня не пустит никто)
вот я и делаю
Добавлено через 7 минут и не правильно, ведь связь может быть и не по аттрибуту "PRN", тогда я опять пролетаю..
0
|
11 / 11 / 0
Регистрация: 05.08.2010
Сообщений: 30
|
||||||
11.07.2011, 10:48 | 15 | |||||
Если работает запрос к таблице без указания схемы, то может быт ты имеешь доступ к ней через синоним, публичный или приватный. обрати внимание на значение поля ALL_TABLES.OWNER, если он не равен твоему текущему пользователю, то первоначальный запрос можно модифицировать, например, для пользователя SCOTT - владельца объектов.
1
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
||||||
11.07.2011, 10:52 | 16 | |||||
1. кроме all_tables есть еще all_tab_columns.
Кроме того из all_constraints и all_cons_columns можно посмотреть связи между таблицами (если в базе созданы связки PK-FK). В этом случае в all_constraints будет constraint_type = 'R' (от Reference) 2. генерировать скритпы можно автоматом. - в SQL*Plus включаешь spool - формируешь скрипты типа
Потом запускаешь запросы из сформированного файла 3. Вообще конечно искать по всем полям какое-то значение - задача еще та. Если есть приложение, работающее с базой и использующее нужное значение - проще включить трассировку сессии (если потом есть возможность достать с сервера трассировочный файл). Если значение может использоваться в хранимых процедурах, то можно поискаиь с пом. LIKE в текстах (исходные тексты храняться в all_source)
2
|
Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
|
11.07.2011, 11:12 [ТС] | 17 |
Спасибо. И за all_constraints и all_cons_columns отдельное большущее спасибо, надеюсь поможет. Буду теперь пробовать ваши советы.
0
|
Кибернетик
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
|
|
12.07.2011, 11:35 [ТС] | 18 |
Уф. Вопрос снова открыт. all_constraints и all_cons_columns рассказали о том что некоторые таблицы не связаны, а то что в них значения это ссылки на другие документы и на них самих никто не ссылается, это меня немного коробит. Почему так сделали разработчики ума не приложу. теперь вот хз что делать. Короче, ситуация:
Есть таблицы DOCS_PROP свойства документов DOCS_PROP_VALS значения свойств док. DOCS_PROP_LINK ссылка на справочник для значений, хотя хз точно что это за справочник из 20 строк. Логично думать что где-то есть таблица связывающая документы и их свойства. Вот ее и надо найти. Осложняется тем что судя по связям из таблицы all_constraints эти три таблички сами по себе. По названию тоже пробовал искать и увидел DOCS_OWNERS подумал что это документы и их свойства, но табличка пустая. Из вариантов предложенных Grossmeister'ом возможно использовать только 2-ой, но у меня мало опыта. Поэтому прошу помоч составить sql запрос для поиска значения в БД. Просто селект, можно ведь? Тут еще сложность с названием поля в условии отбора WHERE. оно как угодно может называться(( у меня есть только значение 11852081 это ключ DOCS_PROP и я знаю что оно в гдето храниться как число. Возвращаясь к первому посту, эта задача реально выполнима? Или такой селект будет отваливаться потому что он будет в цикле по всем таблицам и полям этих таблиц(я себе это так представляю), а к некоторым у меня и доступ то закрыт?.. Я негодую.
0
|
12.07.2011, 11:35 | |
12.07.2011, 11:35 | |
Помогаю со студенческими работами здесь
18
Возможно ли как-то произвести поиск в коллекции по имени? Возможно ли сделать поиск в Делфи по названию формы? Поиск и замена построчная в notepad++ (возможно exel) Поиск методом Locate (возможно ли искать частичные совпадения?) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |