从 Microsoft SQL Server 搜索链接服务器 (Oracle) 中的列名 [重复]
Posted
技术标签:
【中文标题】从 Microsoft SQL Server 搜索链接服务器 (Oracle) 中的列名 [重复]【英文标题】:Search Column name in Linked Server (Oracle) from Microsoft SQL Server [duplicate] 【发布时间】: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%''') 【参考方案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_COLS
或ALL_TAB_COLS
查看它。有关此视图的更多信息,请参阅 oracle 文档
SELECT TABLE_NAME, COLUMN_NAME
FROM USER_TAB_COLS
WHERE UPPER(COLUMN_NAME) LIKE '%TELEPHONE%';
UPPER
在WHERE
子句中使用,因为如果名称是用双引号创建的,则区分大小写,如果不带引号,则不区分大小写。
干杯!!
【讨论】:
以上是关于从 Microsoft SQL Server 搜索链接服务器 (Oracle) 中的列名 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
登录 Microsoft SQL Server 错误:18456
text 从命令行打开Microsoft SQL Server Management Studio
Microsoft SQL Server 2014 的 Hibernate 方言是啥?