【问题标题】:Search Column name in Linked Server (Oracle) from Microsoft SQL Server [duplicate]从 Microsoft SQL Server 搜索链接服务器 (Oracle) 中的列名 [重复]
【发布时间】:2020-01-08 10:23:11
【问题描述】:

我需要从 Linked Oracle Database 中检索表名,该数据库位于 Linked Server with Microsoft SQL Server 上。

例如我可以使用以下方法在 SQL Server 中获取表名:

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

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

【问题讨论】:

  • 您需要 Oracle 代码来做什么?你在 oracle 代码中的查询是什么?
  • 嗨,用于检索 Oracle 表名的 SQL 查询
  • 已排序。谢谢。 SELECT * FROM OPENQUERY(ORACLE_DB_NAME,'SELECT table_name, column_name FROM cols WHERE column_name LIKE ''%TELEPHONE%''')

标签: sql-server oracle linked-server


【解决方案1】:
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%';

【讨论】:

    【解决方案2】:

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

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

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

    干杯!!

    【讨论】:

      猜你喜欢
      • 2011-01-13
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      相关资源
      最近更新 更多