在Oracle SQL Developer,如果我'm viewing the information on a table, I can view the constraints, which let me see the foreign keys (and thus which tables are referenced by this table), and I can view the dependencies to see what packages and such reference the table. But I'我不知道如何找到哪些表引用该表 .
例如,假设我正在查看 emp
表 . 还有另一个表 emp_dept
,它捕获哪些员工在哪些部门工作,这些部门通过 emp
表引用 emp
表,这是 emp
表的主键 . 有没有办法(通过程序中的某些UI元素,而不是通过SQL)找到 emp_dept
表引用 emp
表,而不必知道 emp_dept
表存在?
9 回答
您可以从
ALL_CONSTRAINTS
视图中查询:2015年5月发布的SQL Developer 4.1添加了一个Model选项卡,显示了以实体关系图格式引用表的表外键 .
要添加sql developer插件的上述答案,使用下面的xml将有助于获取与外键关联的列 .
这已经在产品中使用了多年 - 尽管它在2011年没有出现在产品中 .
但是,只需单击“模型”页面即可 .
确保您至少使用4.0版(2013年发布)才能访问此功能 .
不可以.Oracle SQL Developer没有这样的选项 .
您必须手动执行查询或使用其他工具(例如PLSQL Developer有此选项) . 以下SQL是PLSQL Developer使用的SQL:
其中
r_owner
是架构,r_table_name
是您要查找其引用的表 . 名称区分大小写要小心,因为在Oracle SQL Developer的报告选项卡上有选项"All tables / Dependencies"这是来自ALL_DEPENDENCIES,它指的是“当前用户可访问的过程,包,函数,包体和触发器之间的依赖关系,包括对没有任何创建的视图的依赖性数据库链接 . “然后,此报告对您的问题没有任何 Value .
在下面的查询中将[Your TABLE]替换为 emp
这样的事情怎么样:
要将此作为扩展添加到SQL Developer,请执行以下操作:
将扩展添加到SQL Developer:
工具>首选项
数据库>用户定义的扩展
单击"Add Row"按钮
在类型中选择"EDITOR",位置是您保存上面的xml文件的位置
单击"Ok"然后重新启动SQL Developer
导航到任何表,您现在应该看到SQL 1旁边的另一个选项卡,标记为FK References,它显示新的FK信息 .
参考
http://www.oracle.com/technetwork/issue-archive/2007/07-jul/o47sql-086233.html