在使用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
分享到:
相关推荐
oracle外部表的使用oracle外部表的使用
外部表只能在Oracle 9i之后来使用。简单地说,外部表,是指不存在于数据库中的表。通过向Oracle提供描述外部表的元数据,我们可以把一个操作系统文件当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中...
ORACLE 建外部表笔记
一个在oracle 10g(windows平台)版本下创建外部表的实例,亲自实践,100%可行! 里面有txt文件,有操作步骤,以txt的文档存在! 爱技术者不可错过!
oracle外部表Externaltable[借鉴].pdf
hive双分区外部表复合数据结构博客的数据资料,欢迎下载。
本出版物针对以下用户编写: 数据库用户 数据库管理员 数据库安全管理员 数据库应用程序程序员 本手册假定您具备以下背景: 对于计算机、操作系统和...这些主题来自 GBase 8t SQL 语法指南GBase 8t 外部表数据快速加载
CONTENTS 外部表构建 外部表连接 目录 01 外部表构建 外部表构建 (1)使用Access设计器创建表 外部表是指不存在于数据库中的表,是对数据库表的延伸。在Access数据库中可以通过Creat Table语句或者使用设计器来创建...
一:内部表和外部表的区别 创建表时使用关键字external创建的表就是外部表,没有使用该关键字创建的表就是内部表。 删除表时(drop table)内部表会删除hdfs对应路径,而外部表不会删除hdfs对应的路径, 删除表无论是...
ORACLE外部表学习笔记,希望对从事oracle的朋友有帮助
外部表只能在Oracle 9i之后来使用。简单地说,外部表,是指不存在于数据库中的表。通过向Oracle提供描述外部表的元数据,我们可以把一个操作系统文件当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中...
Oracle数据库外部表
1.在Hive中建立数据库hive,该库中建立外部表party,将hdfs的/party.csv导入该表,用命令查看前十条记录并截图。 year int type string program string performers string 2.完成以下题目。 1)统计历届春晚的节目...
关于ORACLE 外部表的使用方法,里面的内容主要是根据网络中所描述相关的知识点总结。
BIEE10G外部表认证的方式在BIEE11G依然支持,这个文档是step by step的讲解在11G怎么实现外部表认证!用户名、密码、角色均存在数据库表里。望对有需要的同学有所帮助!
《【多数据源系列】基于SpringCloud实现PostgreSQL外部表读取(附源码)》demo,项目解压后即可启动,里面包含外部表sql和原始表sql,建议先看我写的文章熟悉一下里面外部表相关原理和概念以及文章里面关于该demo的...
Hadoop-2.8.0-HA-Hive安装部署与HQL10.hive的基本语法--内部表和外部表.mp4
本例使用连接信息类JoinItem和外部表进行连接,使用iServer java6R自带地图“World Map”,对Capitals数据集做关联查询,关联的内表为Capoials,外表为Capitals_Outside,关联字段为Capitals.SmID=Capitals_ID,其中...
所谓外部表,就是Hive并非认为其完全拥有这份数据。删除该表并不会删除掉这份数据,不过描述表的元数据信息会被删除掉。关于Hive数据仓库的管理表(MANAGED_TABLE)和外部表(EXTERNAL_TABLE)的区别,在创表的时候...