<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Luben Park

    Java Ben 成長之路

    [轉帖]SQL Server - [分布式查詢/事務]

    分布式查詢
    ??? OPENROWSET
    ??? 從Excel取數據
    ??? SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=d:\1.xls',[Sheet1$])
    ??? 從Oracle取數據
    ??? SELECT?* FROM OPENROWSET('MSDAORA.1','NetServiceName';'User';'Password','SELECT * FROM OracleTalbe')
    ?
    ??? Linked Server(for Oracle)
    ??? 建立Linked Server
    ??? sp_addlinkedserver'Allies', 'Oracle', 'MSDAORA.1', 'NetServiceName'
    ??? Oracle的Login
    ??? sp_addlinkedsrvlogin'Allies', FALSE, 'SQLServerLogin', 'OracleUser', 'OraclePassword'
    ??? 從Oracle查詢數據
    ??? SELECT*FROM OPENQUERY( Allies, 'SELECT * FROM OracleTalbe'),或者
    ??? SELECT*FROM Allies..OracleUser.OracleTalbe
    ??? 修改Linked Server的Server Option
    ? ?? sp_serveroption'Allies', 'Option Name', 'Option Value'
    ??? 例如
    ??? sp_serveroption'OraDC', 'rpc out', 'true'
    ??? sp_serveroption'OraDC', 'rpc', 'true'
    ??? 向Oracle插入數據(還沒有用過)
    ??? INSERT INTO OPENQUERY(Allies, 'SELECT ... FROM OracleTalbe WHERE 1=2') VALUES ( ... )
    ??? 刪除Linked Server
    ??? sp_dropserver'Allies', 'droplogins'
    ?
    ??? 注意:使用OPENROWSET、OPENQUERY時,SQL Server不對提交的SQL語句做任何檢查,直接將語句提交給Linked Server進行處理;使用四部分命名法時,SQL Server可能從Linked Server上讀取被引用表的數據到SQL Server,然后在SQL Server上來完成其它操作。
    ?
    ??? 設置SQL Server到Oracle的Linked Server,可參考以下KB文章:
    ??? How to set up and troubleshoot a linked server to Oracle in SQL Server
    ??? Limitations of Microsoft Oracle ODBC Driver and OLEDB Provider
    ??? Techniques to Debug Connectivity Issues to an Oracle Server Using the ODBC Driver and OLE DB Provider
    ??? Supportability of the Microsoft ODBC Driver/ OLE DB Provider for Oracle w.r.t Oracle 8.x
    ?
    ??? 分布式事務中的OPENROWSET、OPENQUERY、OPENDATASOURCE
    ??? 如果在事務,或是一些隱含使用事務的情況下,例如TRIGGER中,使用OPENROWSET、OPENQUERY、OPENDATASOURCE時,就需要使用分布式事務來處理。
    ??? 在分布式事務中使用OPENROWSET、OPENQUERY、OPENDATASOURCE或Linked Server時,需要注意:
    ??? 1. 必須啟動MSDTC服務。
    ????Service Name為Distributed Transaction Coodinator。
    ??? 2. 所涉及的Server之間如果存在網關、防火墻,需要開啟TCP 135端口。
    ??? 分布式事務需要使用這個端口通訊。
    ??? 3. 如果Server之間跨網段,則Server之間需要能互相PING到機器名(而不是IP地址)。
    ??? 如果相互PING機器名有問題,修改system32/driver/etc目錄下的hosts文件。
    ?
    ??? 上面的設置不正確時,會出現類似如下的錯誤:
    ??? 該操作未能執行,因為 OLE DB 提供程序 'SQLOLEDB' 無法啟動分布式事務。
    [OLE/DB provider returned message: 新事務不能登記到指定的事務處理器中。 ]
    OLE DB 錯誤跟蹤[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
    ?
    ?
    ??? 分布式事務可以查詢下列KB文章:
    ??? Failed to Enlist on Calling Object's Transaction
    ??? How to troubleshoot MS DTC firewall issues
    ??? You receive error 7391 when you run a distributed transaction against a linked server
    ?
    ??? 使用分布式查詢,可以參考:Chapter 25 - Distributed Queries: OLE DB Connectivity
    ??? 關于ORAOLEDB提供程序的詳細說明,可以參考:Oracle Provider for OLE DB Developer's Guide - Release 9.2 。

    posted on 2006-03-29 16:35 Ben 閱讀(1204) 評論(0)  編輯  收藏 所屬分類: 數據庫相關

    主站蜘蛛池模板: 亚洲欧美国产国产一区二区三区| 欧美亚洲精品一区二区| 青青草免费在线视频| 亚洲av日韩综合一区久热| 亚洲毛片av日韩av无码| 91精品国产免费久久国语麻豆| 精品亚洲456在线播放| 亚洲一级特黄大片在线观看 | 亚欧日韩毛片在线看免费网站| 理论片在线观看免费| 亚洲国产婷婷六月丁香| 野花高清在线观看免费完整版中文| 国产亚洲精品免费| 91亚洲精品第一综合不卡播放| 久久性生大片免费观看性| 亚洲福利一区二区| 亚洲人成无码网WWW| 每天更新的免费av片在线观看| 青青草97国产精品免费观看 | 亚洲剧场午夜在线观看| 亚洲毛片av日韩av无码| 日韩精品无码区免费专区| a级大片免费观看| 亚洲精品无码mⅴ在线观看| 国产V亚洲V天堂无码久久久| 在线播放高清国语自产拍免费| a级片免费在线观看| 国产成人综合亚洲绿色| 亚洲国产韩国一区二区| 久久九九亚洲精品| 国产一级高清视频免费看| 欧洲乱码伦视频免费| 久操视频在线免费观看| 丰满妇女做a级毛片免费观看 | 国产成人精品日本亚洲专| 国产av天堂亚洲国产av天堂| 亚洲AV中文无码乱人伦在线视色| aa级一级天堂片免费观看| 日韩免费无码一区二区三区| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 7777久久亚洲中文字幕蜜桃|