0

我正在使用 SQL Server 2008 R2,

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

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

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

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

谢谢。

4

2 回答 2

2

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

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

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

于 2013-06-06T21:25:24.760 回答
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%'
;
  • 您可以创建临时表并将结果捕获到其中。
于 2013-06-07T09:07:50.687 回答