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

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

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

    Luben Park

    Java Ben 成長(zhǎng)之路

    [轉(zhuǎn)帖]SQL Server - [分布式查詢/事務(wù)]

    分布式查詢
    ??? OPENROWSET
    ??? 從Excel取數(shù)據(jù)
    ??? SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=d:\1.xls',[Sheet1$])
    ??? 從Oracle取數(shù)據(jù)
    ??? 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查詢數(shù)據(jù)
    ??? 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插入數(shù)據(jù)(還沒有用過(guò))
    ??? INSERT INTO OPENQUERY(Allies, 'SELECT ... FROM OracleTalbe WHERE 1=2') VALUES ( ... )
    ??? 刪除Linked Server
    ??? sp_dropserver'Allies', 'droplogins'
    ?
    ??? 注意:使用OPENROWSET、OPENQUERY時(shí),SQL Server不對(duì)提交的SQL語(yǔ)句做任何檢查,直接將語(yǔ)句提交給Linked Server進(jìn)行處理;使用四部分命名法時(shí),SQL Server可能從Linked Server上讀取被引用表的數(shù)據(jù)到SQL Server,然后在SQL Server上來(lái)完成其它操作。
    ?
    ??? 設(shè)置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
    ?
    ??? 分布式事務(wù)中的OPENROWSET、OPENQUERY、OPENDATASOURCE
    ??? 如果在事務(wù),或是一些隱含使用事務(wù)的情況下,例如TRIGGER中,使用OPENROWSET、OPENQUERY、OPENDATASOURCE時(shí),就需要使用分布式事務(wù)來(lái)處理。
    ??? 在分布式事務(wù)中使用OPENROWSET、OPENQUERY、OPENDATASOURCE或Linked Server時(shí),需要注意:
    ??? 1. 必須啟動(dòng)MSDTC服務(wù)。
    ????Service Name為Distributed Transaction Coodinator。
    ??? 2. 所涉及的Server之間如果存在網(wǎng)關(guān)、防火墻,需要開啟TCP 135端口。
    ??? 分布式事務(wù)需要使用這個(gè)端口通訊。
    ??? 3. 如果Server之間跨網(wǎng)段,則Server之間需要能互相PING到機(jī)器名(而不是IP地址)。
    ??? 如果相互PING機(jī)器名有問(wèn)題,修改system32/driver/etc目錄下的hosts文件。
    ?
    ??? 上面的設(shè)置不正確時(shí),會(huì)出現(xiàn)類似如下的錯(cuò)誤:
    ??? 該操作未能執(zhí)行,因?yàn)?OLE DB 提供程序 'SQLOLEDB' 無(wú)法啟動(dòng)分布式事務(wù)。
    [OLE/DB provider returned message: 新事務(wù)不能登記到指定的事務(wù)處理器中。 ]
    OLE DB 錯(cuò)誤跟蹤[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
    ?
    ?
    ??? 分布式事務(wù)可以查詢下列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
    ??? 關(guān)于ORAOLEDB提供程序的詳細(xì)說(shuō)明,可以參考:Oracle Provider for OLE DB Developer's Guide - Release 9.2

    posted on 2006-03-29 16:35 Ben 閱讀(1203) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫(kù)相關(guān)

    主站蜘蛛池模板: 日韩在线播放全免费| 产传媒61国产免费| 青青草a免费线观a| 亚洲日本一区二区| 中文在线免费视频| 色噜噜AV亚洲色一区二区| 朝桐光亚洲专区在线中文字幕| 成人免费无码大片a毛片软件| 2017亚洲男人天堂一| 丁香花在线观看免费观看| 亚洲人成7777影视在线观看| 4虎永免费最新永久免费地址| 亚洲人成毛片线播放| 免费做爰猛烈吃奶摸视频在线观看 | 亚洲日韩欧洲无码av夜夜摸| 亚洲阿v天堂在线2017免费| 国产亚洲精aa成人网站| a毛片在线还看免费网站| 久久综合图区亚洲综合图区| 免费A级毛片无码A∨| 亚洲一卡二卡三卡| 在线免费观看一级片| 无人视频免费观看免费视频 | 日本三级在线观看免费| 久久91亚洲精品中文字幕| 51在线视频免费观看视频| 中文字幕 亚洲 有码 在线| 国产区卡一卡二卡三乱码免费| 成人嫩草影院免费观看| 亚洲AV无码第一区二区三区| 18禁免费无码无遮挡不卡网站 | 亚洲人成影院在线| 无人在线观看免费高清视频| 日本亚洲欧美色视频在线播放 | 香蕉97超级碰碰碰免费公| 亚洲日韩av无码中文| 久久精品国产精品亚洲下载| 久久ww精品w免费人成| 亚洲色少妇熟女11p| 日韩精品亚洲aⅴ在线影院| 亚洲免费观看网站|