Java 如何通过JDBC获取视图引用(基表)?
当我创建视图时,数据库引擎对我的查询进行PASS,并以某种方式存储它。然后我可以找出一个视图使用哪些表吗?我知道不同的数据库可能会有所不同。JDBC可能具有某种抽象级别 有些东西告诉我这是通过getTables(?)完成的: 如果不能。是否有专门针对Oracle数据库的解决方案(如plsql developer中的视图/引用)?Oracle:Java 如何通过JDBC获取视图引用(基表)?,java,database,oracle,jdbc,metadata,Java,Database,Oracle,Jdbc,Metadata,当我创建视图时,数据库引擎对我的查询进行PASS,并以某种方式存储它。然后我可以找出一个视图使用哪些表吗?我知道不同的数据库可能会有所不同。JDBC可能具有某种抽象级别 有些东西告诉我这是通过getTables(?)完成的: 如果不能。是否有专门针对Oracle数据库的解决方案(如plsql developer中的视图/引用)?Oracle: Select * from dictionary 返回您有权访问的许多系统表/函数,其中包含有价值的结构信息 在该列表中,您将看到 从所有视图中选择*
Select * from dictionary
返回您有权访问的许多系统表/函数,其中包含有价值的结构信息
在该列表中,您将看到
从所有视图中选择*(其中包含视图的源SQL),这些视图可以被解析为表名
虽然我认为有一个all_Dependencies或all_References视图,它将包含对单独字段中的表的必需引用,这将更容易解析,但我现在正在寻找它
从所有依赖项中选择*,其中Name='YOUR\u VIEWNAME'和Referenced\u Type='TABLE'
将返回所有引用的表
虽然我不确定这些功能如何与链接表一起使用。因此,如果您通过链接服务器引用外部表。。。这些功能可能不起作用。编辑:别担心,误读了这个问题:我以为你想自己检索视图
据我所知,没有特定于JDBC的方法来检索这些信息:您需要深入到特定于数据库的系统表中,看看这些信息是否可用
下面的答案指定如何检索视图,但不回答问题:
类型为“视图”
乙二醇
找到了一些wizdom,因为我以为你在寻找Oracle解决方案;因此,如果视图引用视图,则需要对所有依赖项进行分层查询以获取所有表。啊,是的,我忘记了这一点。您可以进一步说,如果视图引用函数,那么您还需要使用分层查询。
Select * from dictionary
dmd.getTables(catalog, schema, "%", new String[] {"VIEW"});