从链接的Oracle DB查询SQL Server DB - 列名太长(> 30 char) - 有什么方法可以从中进行选择吗?

时间:2016-08-22 09:44:12

标签: mysql sql-server database oracle sql-server-2008

我有一个链接到SQL Server数据库(2008)的oracle数据库(11g)。

oracle中的列名最多为30个字符。 SQL Server中的列名最多为128个。

SQL Server数据库有一个表employee,其中包含以下列:'some_really_long_column_name_here''short_col_here'

尝试通过数据库链接从 oracle数据库读取SQL服务器数据库时,如下所示:

select * from "engagements"@myDatabaseLink;

我收到如下错误:

ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Oracle][ODBC SQL Server Driver][SQL Server]Invalid column name 'some_really_long_column_name_h'. 
ORA-02063: preceding 2 lines from SQL_SERVER_DATABASE_SCHEMA
28500. 00000 -  "connection from ORACLE to a non-Oracle system returned this message:"

(请注意,列名在截止的错误消息中被截断)

可以

Select "short_col_here" from "engagements"@myDatabaseLink;

并获得正确的结果。

然而我做不到

select 'some_really_long_column_name_here' AS "shortAlias" from "engagements"@myDatabaseLink;

我一直在接受:

ORA-00972: identifier is too long

如果我无法修改SQL服务器架构(例如,在那一侧创建一个具有较短列名称的视图......)我有什么方法可以查询数据通过Oracle数据库列'some_really_long_column_name_here'?

0 个答案:

没有答案