我创建了一个View,我想查找视图中存在的所有列以及列所在的源表。例如:
CREATE VIEW myView AS
SELECT
firstName,
middleName,
you.lastName surName
FROM
myTable me
LEFT OUTER JOIN yourTable you
ON me.code = you.code
GO
所以这里我想要数据如下
----------------
|SourceTable|Column |
----------------
|me |firstName|
|me |middleName|
|you |lastName|
任何人都可以帮助我。 P.S:我需要 Oracle
答案 0 :(得分:0)
如果列名只存在于视图中使用的表中的一个表中,那么我们可以通过以下查询找到它。
select table_name, column_name
from all_tab_columns
where table_name in ("tables used")
and column_name in (select column_name
from all_tab_columns
where table_name = 'view_name');
答案 1 :(得分:0)
可以使用查询选择用于创建视图的表:
select
name ,
type ,
referenced_name ,
referenced_type
from
user_dependencies
where
name = 'VIEW_NAME' and
type = 'VIEW' and
referenced_type = 'TABLE';
如果视图列的表列名称相同,请尝试以下查询:
select
distinct table_name, column_name
from
all_tab_columns
where table_name in (select
referenced_name
from
user_dependencies
where
name = 'VIEW_NAME' and
type = 'VIEW' and
referenced_type = 'TABLE')
and column_name in (select
column_name
from
all_tab_columns
where
table_name = 'VIEW_NAME');