`

外部表

阅读更多
在使用oracle数据库时,对oracle中的外部表的操作只能够进行select操作,不能够进行delete、update,insert into操作。下面分别对在外部表上的dml(除select外)语句进行了测试,以此加深印象。
测试前的准备事项:
1.用sys用户向创建外部表的用户(以scott用户为例)进行授权操作(让该用户有创建directory的权利)。
grant create any directory to scott;
2.让scott用户创建directory目录:
create or replace directory utl_scott_dir as 'c:\utl_scott_dir';
3.在计算机的c盘下创建文件夹utl_scott_dir.
4.在utl_scott_dir文件夹下创建外部文件dept.txt
文件格式如下:
10,ACCOUNTING,NEW YORK
20,RESEARCH,DALLAS
30,SALES,CHICAGO
40,OPERATIONS,BOSTON
注意:文件格式可以和上面的不一致,但如果修改了文件格式,那么在下边的创建外部表时的相应地方也要修改相关信息。
SQL>    create table olddept (
  2       deptno number,dname char(20),loc char(20))
  3       organization external(
  4       type oracle_loader
  5      default directory utl_scott_dir
  6        access parameters
  7        (
  8        records delimited by newline
  9      badfile 'bad_emp'
10      logfile 'log_emp'
11      fields terminated by ','--外部文件字段间的分隔符是','号,如果在外--部文件中修改了字段间的分隔符,那么在此处也应做相应修改。
12      (
13      deptno char,
14      dname char,
15     loc char
16     ))
17     location ('dept.txt'))
18      parallel 5
19     reject limit 200
20  /

表已创建。

已用时间:  00: 00: 00.01
SQL> select * from olddept;

    DEPTNO DNAME                LOC
---------- -------------------- --------------------
        10 ACCOUNTING           NEW YORK
        20 RESEARCH             DALLAS
        30 SALES                CHICAGO
         4 OPERATIONS           BOSTON

已用时间:  00: 00: 00.37
SQL> delete from olddept;
delete from olddept
            *
第 1 行出现错误:
ORA-30657: 操作在外部组织表上不受支持


已用时间:  00: 00: 00.00
SQL>
update olddept set dname='dddd' where deptno=10
       *
第 1 行出现错误:
ORA-30657: 操作在外部组织表上不受支持


已用时间:  00: 00: 00.00
SQL> insert into olddept values('20','dddd','beijing');
insert into olddept values('20','dddd','beijing')
            *
第 1 行出现错误:
ORA-30657: 操作在外部组织表上不受支持


已用时间:  00: 00: 00.00
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics