从 Microsoft SQL 服务器中搜索链接服务器 (Oracle) 中的列名称

Search Column name in Linked Server (Oracle) from Microsoft SQL Server

我需要从 Microsoft SQL 服务器的链接服务器上的链接 Oracle 数据库中检索 Table 名称。

例如我可以使用

在 SQL 服务器中获取 table 个名字:
SELECT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%TELEPHONE%'

但是,我需要 Oracle 代码。 我正在使用带有 Oracle 链接服务器的 Microsoft SQL 服务器。

SELECT 
     * 
FROM 
     OPENQUERY(ORACLE_DB_NAME,'
          SELECT 
               table_name, 
               column_name 
          FROM 
               cols 
          WHERE 
               column_name LIKE ''%TELEPHONE%'''
      )

根据您的评论“您好,SQL 检索 Oracle Table 名称”的查询,您可以执行以下操作:

SELECT 
     table_name, 
     column_name
FROM 
     cols
WHERE 
     column_name LIKE '%TELEPHONE%';

您可以使用 USER_TAB_COLSALL_TAB_COLS 查看它。有关此视图的更多信息,请参阅 oracle 文档

SELECT TABLE_NAME, COLUMN_NAME 
FROM USER_TAB_COLS 
WHERE UPPER(COLUMN_NAME) LIKE '%TELEPHONE%';

UPPER 用于 WHERE 子句,因为如果名称是用双引号创建的,则名称区分大小写,如果不使用引号创建,则不区分大小写。

干杯!!