2013-04-23 84 views
2

您好,我已经使用Oracle网关创建了从Oracle到SQL Server 2008的数据库链接。将SQL Server数据查看到Oracle

DB LINK:

create public database link mssql 
connect to "user" identified by "password" 
using 'gateway-SID'; 

当我用一个简单的查询作为SELECT * FROM [email protected]结果清楚地确定。

当我从表格中选择不同的列时会出现问题,例如

SELECT COLUMN_NAME FROM [email protected] 

我从我的SQL开发人员获得一个查询错误说:

ORA-00904: “CUSTOMERID”:无效的标识符
00904. 00000 - “%s的:无效的标识符”
原因:
操作:在线路
错误:1列:8

可以在请帮助我吗?

回答

2

(免责声明:我没有SQL服务器专家,但我给它一个去)

SQL Server是区分大小写的 - 你要引用列名,所以不是

SELECT COLUMN_NAME FROM [email protected] 

你需要

SELECT "COLUMN_NAME" FROM [email protected] 

甚至

SELECT "COLUMN_NAME" FROM "TABLE"@mssql 

请参阅Oracle forums on SQL Server, Oracle Gateway and ORA-00904

+0

谢谢弗兰克:)! – charilaos13 2013-04-23 08:57:47

+0

实际上,您不必“引用”对象名称 - 只是在某些情况下,它们可能区分大小写(在SQL Server中),因此不清楚引用的对象是什么 - 谢天谢地,您可以使用引号使名称更清晰,就像在OS shell中一样... – 2014-10-13 11:28:25