2011-11-02 69 views
2

在這裏和網絡上搜索後,我終於決定發佈問題。我正在運行SQL 2000服務器,並鏈接了一個Oracle 9i服務器。當我運行查詢時,一切正常,並且甚至使用OPENQUERY方法更新和插入Oracle鏈接服務器(同時使用Microsoft OLE DB驅動程序和Oracle OLE DB驅動程序)。 問題是,爲了清理代碼,我想在我的查詢中使用四個部分名稱。我也在查詢其他SQL鏈接服務器時也這樣做。如何檢索Oracle服務器排序規則以設置鏈接服務器

但是,當我用四個部分組成的名稱對運行的Oracle查詢我得到這個錯誤:(我正在翻譯從西班牙語錯誤消息大概是在英語標識的原始消息不同)

錯誤:OLE DB「MSDAORA '返回了一個無效的列定義。 錯誤代碼:7318

挖掘一點,我瞭解到,這可能與nos在鏈接的服務器屬性中設置了正確的排序規則名稱有關。

現在......我不是甲骨文的專家,所以我需要找出什麼排序規則是我在Oracle中使用的連接模式(應用程序......是的,我知道,我知道......)

所以,簡單的問題是......我如何找出Oracle正在使用的排序規則?我可以通過Toad訪問Oracle服務器...是否有任何查詢可以運行,以便找出答案?

謝謝!

回答

0

我認爲你正在尋找的NLS設置,您可以從這些觀點發現:

  • V $ NLS_PARAMETERS - 「當前值」
  • NLS_DATABASE_PARAMETERS - 什麼是數據庫與創建。
  • NLS_INSTANCE_PARAMETERS - 從通過ALTER SYSTEM變化
  • NLS_SESSION_PARAMETERS - 相結合,再加上ALTER SESSION
  • V $參數 - 系統參數,那裏有很多的這種改變(包括各種東西)

這裏的文檔相當缺乏(或者很可能,我找不到合適的文檔),但是這應該會讓你得到你想要的。

您可能必須以SYSDBA身份登錄才能閱讀其中一些視圖。

+0

嗨...感謝您的回覆。 我已經試過這個,但通過蟾蜍訪問這些參數...不幸的是,我無法在這裏找到我在找什麼... 這是一個[截圖](http://dl.dropbox.com/u /5654637/imagenes/NLS.png)我得到的參數。你可以看到,唯一可能與我的整理問題有關的兩個參數是** NLS_CHARACTERSET:WE8ISO8859P1 **和** NLS_NCHAR_CHARACTERSET:AL16UTF16 ** – jprealini

+0

如果其中任何一個是,我想我需要找到一個相當於我在[選擇列表](http://dl.dropbox.com/u/5654637/imagenes/collat​​e.png)中看到的分類名稱,當我在SQL中設置鏈接服務器時 也許我缺少東西......任何其他提示? 謝謝 – jprealini

+0

@ jprealini:好吧,看起來你正在使用Latin1(ISO 8859-1)和你的排序規則([NLS_SORT,NLS_COMP](http://download.oracle.com/docs/cd/B19306_01/server)。 102/b14225/ch3globenv。htm#sthref362))是二元的。不知道如何映射到SQL Server。 – derobert