![](/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.