![](/img/trans.png)
[英]SQL Server 2008: INSERT INTO through Linked Server to Oracle 11g table with TIMESTAMP(6) column
[英]How to use a SQL2000 Linked Server to query an Oracle 11G table
有人可以帮助我使用链接服务器“ idwd”构造查询Projects_dim表所需的SQL吗?
为了测试连接,我使用链接服务器名称运行了一个示例查询。 要访问链接服务器上的表,我使用了一个四部分的命名语法:
linked_server_name.catalog_name.schema_name.table_name。
替换值,您将得到:
idwd.idwd.wimr.PROJECTS_DIM
应该是以下哪个?
idwd..wimr.PROJECTS_DIM
数据库名称为“ idw”,但是下面的网格在“目录”下显示了一个空白值,这是我感到困惑的原因之一,尽管我认为,更可能的方法是在假定合格表的目录部分的情况下构造语法名称应为空白,如以下第一个示例所示。
select * from idwd..wimr.PROJECTS_DIM
Server: Msg 7314, Level 16, State 1, Line 1
OLE DB provider 'idwd' does not contain table '"wimr"."PROJECTS_DIM"'. The table either does not exist or the current user does not have permissions on that table.
select * from idwd.idwd.wimr.PROJECTS_DIM
Server: Msg 7312, Level 16, State 1, Line 1
Invalid use of schema and/or catalog for OLE DB provider 'MSDAORA'. A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog and/or schema.
有人可以建议我要查询该表吗?
我正在使用MS OLEDB Driver for Oracle。
我以为可能是大小写敏感的问题,所以我尝试了一下:
select * from IDWD..WIMR.PROJECTS_DIM
Server: Msg 7356, Level 16, State 1, Line 1
OLE DB provider 'MSDAORA' supplied inconsistent metadata for a column. Metadata information was changed at execution time.
和这个:
select * from IDWD.IDWD.WIMR.PROJECTS_DIM
Server: Msg 7312, Level 16, State 1, Line 1
Invalid use of schema and/or catalog for OLE DB provider 'MSDAORA'. A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog and/or schema.
我尝试使用两个可能的驱动程序中的每个来创建链接服务器:
..没有运气。
您是否认为这可能是驱动程序问题?
我刚刚解决了这个问题。 如果以前可以使用,Oracle可能最近已升级。
为了解决这个问题,我连接到Oracle,并做了一个“ descr TABLENAME;”。 并检查有问题的列。 就我而言,我的列类型为NUMBER,没有像此预览中那样的任何比例。
我要求DBA强制对这3列进行缩放,现在问题已解决!
但我确实发现此解决方案也有解决方法。 您也可以更改TSQL
从
SELECT * FROM idwd..wimr.PROJECTS_DIM
至
SELECT * FROM OPENQUERY(idwd,'select * from wimr.PROJECTS_DIM')
如果没有在列上设置可空性,Microsoft支持部门将报告一个问题。
有关我在Google上搜索的更多信息。
听起来您可能正处于正确的轨道上,将其视为区分大小写的问题。 引用Microsoft支持文档中有关错误7312、7313、7314 的链接服务器到SQL Server中的Oracle数据库的设置和故障排除 :
如果收到这些错误消息,则Oracle架构中可能缺少表,或者您对该表没有权限。 验证是否使用大写形式输入了架构名称。 表和列的字母大小写应与Oracle系统表中指定的相同。
在Oracle方面,不带双引号创建的表或列以大写形式存储。 如果表或列用双引号引起来,则表或列按原样存储。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.