oracle 外部表第一行_Oracle外部表的使用

外部表可以像其它表一样,用select语句作查询。但不能做DML操作,不能建index,不接受约束。这是因为它不是以段的形式存于数据库中,只是以数据字典构造存在,指向一个或多个操作系统文件。

外部表的使用涉及到目录的概念——是DBA在数据库中创建的指向物理路径的目录。

1. 创建时不会验证目录是否存在或是否有相关目录的权限。若不存在或没权限,则使用目录时报错。

2. 目录归sys所有,即使scott有目录的创建权限,是目录的创建者,但也不能删除目录。

目录授权

conn / as sysdba

grant create any directory to scott;

select * from all_directories where directory_name='SCOTT_DIR';

OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH

------------------------------ ------------------------------ ---------------

SYS                                    SCOTT_DIR                                 K:\DB\script

目录创建

create or replace directory ext_dir as 'K:/DB/script';

外部表创建

create table t_ext_tab(id char(1),name char(6))

organization external(

type oracle_loader

default directory scott_dir

access parameters(

records delimited by newline

fields terminated by '#'

)

location ('ext.tab')

);

ext.tab里的内容如下:

1#tough1

2#tough2

3#tough3

外部表查询:

select * from t_ext_tab;

ID

NAME

1

tough1

2

tough2

3

tough3

不可以对外部表进行DML操作

SQL> insert into t_ext_tab values (1,'Tough4');

insert into t_ext_tab values (1,'Tough4')

*

第 1 行出现错误:

ORA-30657: 操作在外部组织表上不受支持

SQL> update t_ext_tab set name='Tough';

update t_ext_tab set name='Tough'

*

第 1 行出现错误:

ORA-30657: 操作在外部组织表上不受支持

SQL> delete from t_ext_tab;

delete from t_ext_tab

*

第 1 行出现错误:

ORA-30657: 操作在外部组织表上不受支持

此文只是介绍了oracle外部表的简单用法。还有很多关于外部表的用法可以参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值