我不知道是否有人可以帮助我。在我的工作中,我继承了一个完全没有文档的数据库(Oracle 11)。到目前为止,我已经设法映射了大多数表格,并确定了在哪里发生了什么。但是,有一些我无法解读的专栏。
有没有办法找出列中的数据是如何构建的?这不是手动输入。一切似乎都指向数据是完全不同的表中不同列中的条目的结果。
这可能是一项不可能完成的任务,但任何和所有建议都将受到欢迎。
谢谢!
C
答案 0 :(得分:2)
也许数据是通过触发器插入到你的神秘列中的?尝试查看字典中的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 :(得分:1)
您可以使用DBMS_METADATA包检索表的完整DDL。
SELECT dbms_metadata.get_ddl('TABLE', 'YOUR_TABLE_NAME', 'YOUR_USER_NAME') FROM dual;
如果这些列是真正的计算列,那么这应该在表的DDL中可见。
或者,您可以使用SQL Developer来显示表格的DDL
答案 2 :(得分:0)
我假设你已经有了问题的sql。
select table_name from dba_tab_columns
where column_name = 'COLUMN_YOU_WANT_TO_KNOW'
将提供包含您要查找的列名的所有表。如果您没有dba权限,则可以使用all_tab_columns(这将显示您的帐户可以访问的所有表格)。