如何从Oracle服务器获取具有特定列的表的列表。

时间:2013-06-06 21:20:24

标签: sql oracle sql-server-2008-r2 linked-server

我使用的是SQL Server 2008 R2,

我可以从具有只读访问权限的链接服务器访问Oracle服务器。

现在我想从Oracle服务器获取具有特定列的表列表。

例如,我想要所有具有“业务地址”列的表。

如果您有任何想法/提示,请提供帮助。!!

感谢。

2 个答案:

答案 0 :(得分:3)

如果您拥有权限并假设列的实际名称为BUSINESS_ADDRESS,则不是包含空格的区分大小写的列名称。

SELECT owner, table_name, column_name
  FROM dba_tab_columns
 WHERE column_name = 'BUSINESS_ADDRESS'

如果没有,如果您只关心要连接的Oracle用户可以查询的表,则可以使用ALL_TAB_COLUMNS;如果您只关心要作为拥有者连接的Oracle用户的表,则可以使用USER_TAB_COLUMNS

答案 1 :(得分:0)

  • 您可能无法访问某些视图。
  • 您可能无法访问任何视图。

但是如果您具有访问权限,则可以运行以下SQL语句:

/* schema you are connected to */
SELECT  table_name
FROM    user_tab_columns
WHERE   LOWER(column_name) LIKE '%business%address%'
;

/* all schemas you have access to*/
SELECT  owner, table_name
FROM    all_tab_columns
WHERE   LOWER(column_name) LIKE '%business%address%'
;
  • 您可以创建临时表并将结果捕获到其中。