久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server與Oracle鏈接服務(wù)器應(yīng)用

瀏覽:3日期:2023-11-15 18:22:03
;;;;最近要把.net開發(fā)的CMS系統(tǒng)跟Java開發(fā)的系統(tǒng)數(shù)據(jù)打通。由于N個系統(tǒng)用的數(shù)據(jù)庫有SQL-Server和Oracle兩種,之間的數(shù)據(jù)讀取成了最大的難題。;;;;我預(yù)備了兩種實行方案,進(jìn)行了技術(shù)驗證。方案一:改寫底層數(shù)據(jù)層和邏輯層。方案二:把Oracle數(shù)據(jù)做定時導(dǎo)向,無需讓Cms做太大的改變。;;;;我做的CMS是基于模板的系統(tǒng)架構(gòu),底層規(guī)則已經(jīng)寫得比較死,要改換底層數(shù)據(jù)庫鏈接或者存在多個數(shù)據(jù)庫鏈接簡直根重寫系統(tǒng)沒有太大的區(qū)別,從開發(fā)成本上分析,決定使用第二方案,做數(shù)據(jù)采集工程。;;;;但是Oracle那邊的系統(tǒng)存在N個庫(即用戶),其中的讀取規(guī)則各不相同,要如何開發(fā)統(tǒng)一導(dǎo)表程序也是個大問題。其中邏輯非常復(fù)雜。風(fēng)險難以控制。在想了幾天之后,發(fā)現(xiàn)了MSSQL和Oracle互通的功能,大喜。接著就開始著手開發(fā)。于是有了這文章。;;;;在MSSQL中有個叫做鏈接服務(wù)器的功能(這個在Oracle里稱為透明網(wǎng)關(guān))。能把不同的異類數(shù)據(jù)庫附加鏈接到MSSQL中,做為一個“虛庫”(我給的名稱)使用。比如Oracle,DB2,Sybase,Access等等,基本上MS能提供驅(qū)動程序的都能做。架好服務(wù)器,開通個Job,就實現(xiàn)了定時導(dǎo)數(shù)據(jù)的功能。具體實現(xiàn):;;;;首先,在Oracle上創(chuàng)建View,給MsSql提供必要的數(shù)據(jù)源。;;;;在MsSql的服務(wù)器上安裝Oracle10g的客戶端。在ODBC創(chuàng)建好數(shù)據(jù)源。之后在MsSql上架設(shè)鏈接服務(wù)器。;;;;test一下。'SELECT id,title,thedate,summary,lid,city,ptype FROM {0}..{1}.{2}'; --0,為數(shù)據(jù)源名稱;1,為用戶名;2為表名。格式要依照PL/SQL語法。;ok~;;;;但是發(fā)現(xiàn),這樣讀取View出錯。所以換了一種寫法:;;;;select * from openquery(***,'SELECT id,title,thedate,summary,lid,city,ptype FROM ***.***')這樣是利用MsSql的分布式方法去讀取Oracle。接著,創(chuàng)建采集的存儲過程。SET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ON GOCREATE PROCEDURE [dbo].[usp_tranDigital] ASselect * from openquery(***,'SELECT id,title,thedate,summary,lid,city,ptype FROM ***.***')用游標(biāo)獲取結(jié)果集的行。這個方法在Oracle比較常用OPEN authors_cursorFETCH NEXT FROM authors_cursor into @ID,@TITLE,@THEDATE,@SUMMARY,@LID,@CITY,@PTYPEWHILE @@FETCH_STATUS = 0BEGINexecute Digital_Insert調(diào)用存儲過程插入。FETCH NEXT FROM authors_cursor into@ID,@TITLE,@THEDATE,@SUMMARY,@LID,@CITY,@PTYPEENDCLOSE authors_cursorDEALLOCATE authors_cursorGOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ON GO在Job里調(diào)用該存儲過程。任務(wù)完結(jié)。這樣,我在不要任何程序修改的情況下,把不同數(shù)據(jù)庫上的數(shù)據(jù)都挪到同一個地方。
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 简阳市| 阿拉善左旗| 个旧市| 乐平市| 宜阳县| 正安县| 谷城县| 馆陶县| 邮箱| 南岸区| 开化县| 清原| 彝良县| 德安县| 镇雄县| 霞浦县| 嵩明县| 外汇| 新沂市| 贺州市| 三台县| 克什克腾旗| 九龙坡区| 安国市| 巴林左旗| 旌德县| 攀枝花市| 萨迦县| 江都市| 阜城县| 鞍山市| 鄂尔多斯市| 朝阳县| 微博| 渝中区| 宾川县| 长丰县| 新和县| 三台县| 和平区| 房产|