在 Microsoft SQL Server 中从关联服务器(Oracle)中搜索列名

18 浏览
0 Comments

在 Microsoft SQL Server 中从关联服务器(Oracle)中搜索列名

这个问题已经有了答案:

如何在Oracle中获取所有表的列表?

我需要从与Microsoft SQL Server链接的联接Oracle数据库中检索表名。

例如,我可以使用以下方式获取SQL Server中的表名:

SELECT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%TELEPHONE%'

但是,我需要Oracle代码。

我正在使用Microsoft SQL Server,并使用链接服务器连接到Oracle。

admin 更改状态以发布 2023年5月23日
0
0 Comments

您可以使用USER_TAB_COLSALL_TAB_COLS视图来实现。详细信息请参阅Oracle文档。

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

UPPERWHERE子句中使用,因为如果名称带有双引号创建,则名称区分大小写,如果不带引号创建,则名称不区分大小写。

干杯!

0
0 Comments

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

根据您的评论 "Hi, SQL Query to retrieve Oracle Table Names",您可以执行以下操作:

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

0