国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

用Oracle SQL實現(xiàn)文件訪問

2024-08-29 13:37:34
字體:
供稿:網(wǎng)友

  Oracle9i有一個最引人注目的優(yōu)點,這就是通過Oracle SQL訪問非Oracle文件的能力。這一新功能被稱做外部表(external tables),它對某些系統(tǒng)具有非常重要的作用,可以令非數(shù)據(jù)庫應(yīng)用程序利用外部文件,而且讓這些文件被Oracle視作普通的數(shù)據(jù)表。
  
  利用外部表即可定義服務(wù)器上幾乎任何普通文件的結(jié)構(gòu),同時使得Oracle把這些文件看作真正的數(shù)據(jù)表,如圖A所示。 用Oracle SQL實現(xiàn)文件訪問(圖一)
  正如你所看到的那樣,Oracle讓數(shù)據(jù)庫程序采用utl_file實用工具寫普通文件。結(jié)合外部表的讀取能力,這種新型拓撲不再需要所有的Oracle數(shù)據(jù)駐留在Oracle表內(nèi),也不需要為Oracle打開新的應(yīng)用程序。下面我們就深入了解這種新特性的工作原理。
  
  
  定義外部表
  假設(shè)你要求Oracle引用以下逗號分隔的普通文本文件。
  
  7369,SMITH,CLERK,7902,17-DEC-80,800,20
  7499,ALLEN,SALESMAN,7698,20-FEB-81,1600,300,30
  7521,WARD,SALESMAN,7698,22-FEB-81,1250,500,30
  7566,JONES,MANAGER,7839,02-APR-81,2975,,20
  7654,MARTIN,SALESMAN,7698,28-SEP-81,1250,1400,30
  7698,BLAKE,MANAGER,7839,01-MAY-81,2850,,30
  7782,CLARK,MANAGER,7839,09-JUN-81,2450,,10
  7788,SCOTT,ANALYST,7566,19-APR-87,3000,,20
  7839,KING,PRESIDENT,,17-NOV-81,5000,,10
  7844,TURNER,SALESMAN,7698,08-SEP-81,1500,0,30
  7876,ADAMS,CLERK,7788,23-MAY-87,1100,,20
   
  
  以上文件包含一些職員信息:
  
  職員工號
  姓名
  職務(wù)說明
  經(jīng)理的工號
  參加工作日期
  薪水
  任命
  部門
  那么該如何給Oracle定義這一文件呢?首先,我們必須在數(shù)據(jù)字典中創(chuàng)建一個Oracle目錄入口,而數(shù)據(jù)字典則指向以上文件所駐留的Windows目錄。在這個例子中我們把目錄命名為testdir并指向c:/docs/pubsdb/queries目錄:
  
  SQL> create Directory testdir as ‘c:/docs/pubsdb/queries’;
  
  Directory Created.
  
  現(xiàn)在目錄創(chuàng)建完畢,我們可以給Oracle定義外部表的結(jié)構(gòu)了。代碼如
  程序清單A 所示。
  
  從語法上看,我們對外部表列的定義方式同內(nèi)部Oracle表的定義方式是一樣的。外部定義采用有住址的外部子句,如表A所示。 用Oracle SQL實現(xiàn)文件訪問(圖二)
  外部表定義好后就可以用SQL對外部表運行報告了,其工作方式就好象駐留在數(shù)據(jù)庫內(nèi)的普通數(shù)據(jù)表。查詢示例如
  程序清單B所示,注重高級ROLLUP參數(shù)的復(fù)雜用法總計了部門和職位的薪水。結(jié)果如 程序清單C所示。
  
  
  外部表的局限性
  由于外部表是一種嶄新的特性,Oracle還不能完美地充分利用這一功能。在Oracle9i中這一特性還具有若干局限性,主要包括:
  
  不支持DML。外部表都是只讀的,但是原始數(shù)據(jù)可以用任何文本編輯器進行編輯。
  高強度查詢的響應(yīng)較為遲鈍。外部表具有一定的處理負載,不太適合大型表的應(yīng)用。
  小結(jié)
  
  通過Oracle訪問普通文件具有很大用途。接下來的文章里我們將教你為Oracle定義電子數(shù)據(jù)表(spreadsheet)。這一技術(shù)對那些用戶可以控制桌面電子表內(nèi)系統(tǒng)范圍參數(shù)的商用系統(tǒng)非常有用。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 邢台市| 海原县| 阳谷县| 万宁市| 商河县| 英吉沙县| 沈阳市| 青川县| 广水市| 金川县| 曲阜市| 辉县市| 绥宁县| 汽车| 汉源县| 康马县| 望都县| 肇庆市| 沂源县| 昌图县| 牟定县| 余姚市| 大洼县| 邵武市| 宣武区| 洪江市| 迭部县| 德清县| 泾阳县| 庆城县| 华宁县| 固阳县| 平顶山市| 衡阳市| 株洲市| 正安县| 榆树市| 沅江市| 库伦旗| 安阳县| 淳安县|