自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)明扼要介紹Oracle Provider

數(shù)據(jù)庫 Oracle
這里介紹我使用Oracle Provider for OLE DB建立了一個(gè)新的連結(jié)服務(wù)器,名稱定為orclprvdr。并嘗試對(duì)該連結(jié)服務(wù)器執(zhí)行INSERT指令,這個(gè)指令是可以被成功執(zhí)行的。

Oracle有很多值得學(xué)習(xí)的地方,這里我們主要介紹Oracle provider,包括介紹Oracle table等方面。從SQL Server將資料新增至Oracle table時(shí),不需要包含INTO關(guān)鍵詞。Microsoft和Oracle的OLE DB providers在Oracle Server上執(zhí)行INSERT 指令時(shí)都會(huì)自動(dòng)加上INTO關(guān)鍵詞。

我使用Oracle Provider for OLE DB建立了一個(gè)新的連結(jié)服務(wù)器,名稱定為orclprvdr。并嘗試對(duì)該連結(jié)服務(wù)器執(zhí)行INSERT指令,這個(gè)指令是可以被成功執(zhí)行的。所以您可以發(fā)現(xiàn):在透過連結(jié)服務(wù)器執(zhí)行INSERT指令時(shí),Oracle provider提供較多的優(yōu)點(diǎn)!然而,如果 table內(nèi)某字段有設(shè)定DEFAULT約束條件,則使用Oracle provider會(huì)無法執(zhí)行INSERT指令加入數(shù)據(jù)。不同的是,如果您使用 Microsoft的provider,只要傳遞實(shí)際的字段值,而非使用DEAULT關(guān)鍵詞,則INSERT指令就可以執(zhí)行。

這個(gè)查詢并沒有特別設(shè)定dname,loc字段為NULL值,但仍舊可以執(zhí)行。如果是使用Microsoft OLE DB provider for Oracle就必須給定其字段值。UPDATE指令使用在可允許NULL值存放的字段上就不會(huì)有問題,這點(diǎn)和INSERT指令不同。如果是對(duì)Oracle執(zhí)行UPDATE指令,不想修改的字段可以不用列出。
 
如果您需要針對(duì)SQL Server與Oracle的table進(jìn)行聯(lián)集(join)查詢,就必須要有連結(jié)服務(wù)器才能執(zhí)行這類的異質(zhì)性查詢。為了建立下面的范例程序,我使用了資料轉(zhuǎn)換服務(wù)(Data Transformation Services,DTS) 將Northwind數(shù)據(jù)庫內(nèi)的Orders table復(fù)制一份到Oracle數(shù)據(jù)庫內(nèi)的SCOTT schema之下,并且將預(yù)設(shè)的目的地從 "SCOTT"."Orders" 改成 "SCOTT"."ORDERS"。我在這里使用大寫子母的原因是為了避免在Oracle工具內(nèi)使用到該table時(shí)還要加上雙引號(hào)。雖然Oracle數(shù)據(jù)庫有支持大小寫混合式數(shù)據(jù)庫對(duì)象名稱,但是全部使用大寫來命名對(duì)象名稱的話,對(duì)于Oracle數(shù)據(jù)庫管理以及程序開發(fā)將會(huì)變得較為容易!

下列范例將針對(duì)Northwind 數(shù)據(jù)庫的Employees table 與SCOTT的Order table

進(jìn)行聯(lián)集查詢:

  1. SELECT lastname FROM employees e  
  2. INNER JOIN oradb..SCOTT.ORDERS o  
  3. ON e.employeeid = o.employeeid  
  4. WHERE o.orderid = 10248 

如果您所執(zhí)行的這類查詢指令必須置于一個(gè)交易(transaction)內(nèi),則SQL Server所在的服務(wù)器必須激活交易協(xié)調(diào)器(Microsoft Distributed Transaction Coordinator (MS DTC)這項(xiàng)服務(wù)。

以下提供數(shù)種使用連結(jié)服務(wù)器進(jìn)行查詢的方式。例如SQL Server的OPENQUERY 系統(tǒng)函數(shù)會(huì)將查詢指令整個(gè)從SQL Server傳遞至Oracle:

  1. SELECT *  
  2. FROM OPENQUERY (oradb,' SELECT * FROM dept  
  3. WHERE deptno = 10' ) 

 使用OPENQUERY并不會(huì)在查閱Oracle系統(tǒng)資料(metadata)時(shí)造成額外影響。有了OPENQUERY這個(gè)函數(shù),所有查詢動(dòng)作都會(huì)發(fā)生在 Oracle連結(jié)服務(wù)器上,可避免查詢系統(tǒng)資料所可能增加的系統(tǒng)負(fù)擔(dān)。使用OPENQUERY來執(zhí)行連結(jié)服務(wù)器的查詢指令是一項(xiàng)較佳的選擇,但是您無法在異質(zhì)性的查詢指令中使用!

至于OPENROWSET 則是一種不需要事先設(shè)定連結(jié)服務(wù)器就可以執(zhí)行的一種轉(zhuǎn)嫁查詢(pass-through query)。除了您必須指定聯(lián)機(jī)時(shí)需要的所有資料作為輸入?yún)?shù)之外,其功能與OPENQUERY函數(shù)類似:

  1. SELECT *  
  2. FROM OPENROWSET (' MSDAORA','Ora817'; 'SCOTT';'TIGER',  
  3. ' SELECT * FROM dept  
  4. WHERE deptno = 10' ) 

本文所提到的連結(jié)服務(wù)器只用來執(zhí)行查詢指令,但是您也可以透過連結(jié)服務(wù)器執(zhí)行預(yù)儲(chǔ)程序。以上介紹Oracle provider。

【編輯推薦】

  1. 簡(jiǎn)討Oracle pctused參數(shù)
  2. 巧學(xué)Oracle數(shù)據(jù)庫聯(lián)機(jī)
  3. Provider for Oracle簡(jiǎn)介
  4. 探討Oracle Server客戶端組態(tài)
  5. 概括SQL Server實(shí)時(shí)查詢Oracle數(shù)據(jù)庫
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-11-13 08:59:30

2009-12-02 11:22:14

Visual Stud

2009-12-03 18:29:11

2009-11-18 16:43:59

2022-12-20 08:29:59

lambdaJava8

2024-04-01 07:57:11

Lambda代碼表達(dá)式

2016-03-02 15:09:57

Java虛擬機(jī)體系結(jié)構(gòu)

2011-01-06 14:22:50

2015-09-01 14:00:36

云數(shù)據(jù)中心云轉(zhuǎn)型

2009-07-21 10:40:36

ASP.NET Pro

2009-03-06 16:11:49

RHEL5SendmailDovecot

2010-05-25 16:39:56

SVN中使用Git

2010-05-22 10:38:15

Symbian開發(fā)

2010-05-27 10:53:54

SVN目錄結(jié)構(gòu)

2010-09-10 15:36:29

CSS縮寫

2020-06-23 14:35:09

等保合規(guī)網(wǎng)絡(luò)安全網(wǎng)絡(luò)威脅

2010-04-20 15:47:31

面試

2021-09-07 09:53:45

鴻蒙HarmonyOS應(yīng)用

2009-12-30 08:52:17

Ubuntu Tora

2009-11-30 11:33:50

sendmail服務(wù)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)