Как узнать, откуда поступают данные в столбце? - PullRequest
1 голос
/ 23 февраля 2011

Я не знаю, может ли кто-нибудь мне помочь.В своей работе я унаследовал полностью недокументированную базу данных (Oracle 11).До сих пор мне удалось отобразить большинство таблиц и определить, что и где происходит.Однако есть несколько столбцов, которые я не смог расшифровать.

Есть ли какой-нибудь способ узнать, как строятся данные в столбце?Это не ручной ввод.Кажется, все указывает на то, что данные являются результатом записи в другом столбце в совершенно другой таблице.

Это может быть невыполнимой задачей, но любые предложения будут приветствоваться.

Спасибо!

C

Ответы [ 3 ]

2 голосов
/ 23 февраля 2011

Возможно, данные вставляются в ваши загадочные столбцы через триггер?Попробуйте заглянуть в исходную таблицу PL / SQL в словаре:

SELECT owner, name, type, line
  FROM dba_source
 WHERE UPPER(text) LIKE '%MYSTERY_COLUMN_NAME%'
   AND type = 'TRIGGER';  -- use or omit this as desired.

Это подскажет вам некоторые возможные места для поиска.

Удачи!

1 голос
/ 23 февраля 2011

Вы можете получить полный DDL для таблицы, используя пакет DBMS_METADATA .

SELECT dbms_metadata.get_ddl('TABLE', 'YOUR_TABLE_NAME', 'YOUR_USER_NAME')
FROM dual;

Если эти столбцы являются действительно вычисляемыми столбцами, это должно быть видно в DDL для таблицы.

В качестве альтернативы вы можете использовать SQL Developer , чтобы показать DDL для таблицы

0 голосов
/ 23 февраля 2011

Я предполагаю, что у вас уже есть SQL, который находится под вопросом.

select table_name from dba_tab_columns
where column_name = 'COLUMN_YOU_WANT_TO_KNOW'

предоставит все таблицы, содержащие имя столбца, который вы ищете.Если у вас нет привилегий dba, вы можете вместо этого использовать all_tab_columns (в котором будут показаны все таблицы, к которым у вашей учетной записи будет доступ).

...