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

首頁 > 數據庫 > Oracle > 正文

ORACLE9I中外部表的使用

2024-08-29 13:31:12
字體:
來源:轉載
供稿:網友
oracle9i中外部表的使用

說明: 這個帖子講述oracle9i外部表(external table)的初級使用。


什么是外部表?

external table和正規的表很相似,具體的定義可以參見《oracle概念手冊》,以下的幾點需要注意:

   >創建的語法類似于: "create table ... organization external"
   >數據在數據庫的外部組織,是操作系統文件。
   >操作系統文件在數據庫中的標志是通過一個邏輯目錄來映射的。       
   >數據是只讀的。(外部表相當于一個只讀的虛表)
   >不可以在上面運行任何dml操作,不可以創建索引。   
   >可以查詢操作和連接。可以并行操作。

例子:

假定有如下的兩個數據文件:

1 平面文件數據的描述
  假設如下的兩個平面文件
  1.dat:

   7369,smith,clerk,7902,17-dec-80,100,0,20
   7499,allen,salesman,7698,20-feb-81,250,0,30
   7521,ward,salesman,7698,22-feb-81,450,0,30
   7566,jones,manager,7839,02-apr-81,1150,0,20


  2.dat:

   7654,martin,salesman,7698,28-sep-81,1250,0,30
   7698,blake,manager,7839,01-may-81,1550,0,30
   7934,miller,clerk,7782,23-jan-82,3500,0,10


   (要有對操作系統中該目錄的讀寫權限。)
    
2 創建一個邏輯目錄并進行適當授權:
  

     sql> create directory testdir as 'd:/temp/';
     目錄已創建。

     sql> grant read on directory testdir to demo;
     授權成功。

     sql> grant write on directory testdir to demo;
     授權成功。


注意:創建完畢邏輯目錄之后要把平面文件拷貝到該目錄下,另外還要注意文件名字不要寫錯。

3 創建外部表

sql> ed
已寫入文件 afiedt.buf

  1 create table demo.ext
  2 (emp_id number(4),
  3 ename varchar2(12),
  4 job varchar2(12) ,
  5 mgr_id number(4) ,
  6 hiredate date,
  7 salary number(8),
  8 comm number(8),
  9 dept_id number(2))
10 organization external
11 (type oracle_loader
12 default directory testdir
13 access parameters(records delimited by newline
14 fields terminated by ',')
15* location('1.dat','2.dat'))
sql> /

表已創建。


4 進行select選擇操作看看是否正確:
      

      sql> select * from demo.ext;

      emp_id ename job mgr_id hiredate salary comm dept_id
      ------ ------- ---------- ------- --------- -------- ---------- -------
        7369 smith clerk 7902 17-dec-80 100 0 20
        7499 allen salesman 7698 20-feb-81 250 0 30
        7521 ward salesman 7698 22-feb-81 450 0 30
        7566 jones manager 7839 02-apr-81 1150 0 20
        7654 martin salesman 7698 28-sep-81 1250 0 30
        7698 blake manager 7839 01-may-81 1550 0 30
        7934 miller clerk 7782 23-jan-82 3500 0 10




   如果要得到外部表的有關信息:


sql> desc dba_external_tables;

名稱
-----------------------------------------------------------------
owner
table_name
type_owner
type_name
default_directory_owner
default_directory_name
reject_limit
access_type
access_parameters

sql> select owner,table_name,default_directory_name,access_parameters
  2 from
  3 dba_external_tables;

owner table_name default_directory_name access_parameters
------------------ ------------------------------ ------------------------------
demo ext testdir records delimited by newline
                                                                 fields terminated by ','


如果dba想要知道平面文件的位置,使用如下的查詢:


sql> desc dba_external_locations;
名稱
-----------------------------------------
owner
table_name
location
directory_owner
directory_name

sql> select * from dba_external_locations;

owner table_name location dir directory_name
------------------------------------------------------------------------
demo ext 1.dat sys testdir
demo ext 2.dat sys testdir


參考文檔:oracle9i database administration guide

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘阴县| 布拖县| 剑阁县| 乳山市| 陆良县| 龙泉市| 沧州市| 浪卡子县| 神池县| 松潘县| 吉木乃县| 茂名市| 喀什市| 定边县| 察隅县| 大丰市| 稷山县| 永州市| 安塞县| 贵南县| 河间市| 五台县| 临颍县| 荥经县| 廉江市| 寿光市| 星子县| 平和县| 乌鲁木齐市| 麦盖提县| 高淳县| 芷江| 宝兴县| 广昌县| 色达县| 治多县| 鄂州市| 兴宁市| 湘潭县| 汝城县| 泰宁县|