在使用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数据库中,外部表(External Tables)是一种特殊类型的表,它允许用户访问存储在数据库之外的数据文件。这种设计使得用户可以直接查询文件系统中的数据,而无需先将数据加载到数据库内部,从而节省了大量的...
Oracle 10g中的外部表(External Tables)是一种非常实用的功能,它允许数据库直接读取存储在操作系统文件系统中的数据,而无需先将其导入到常规的数据库表中。这种机制对于处理大量非结构化或半结构化数据,如日志...
### Oracle 外部表知识点详解 #### 一、外部表的概念及特性 **定义与功能:** 外部表是Oracle数据库自9i版本开始引入的一种特殊表类型,它并不存储在数据库内部,而是指向操作系统文件系统中的某个文件。通过这种...
"Oracle 外部表(External table)" Oracle 外部表(External table)是一种特殊的表类型,它允许 Oracle 数据库将一个普通的文本格式的操作系统文件看作是一个数据库表,可以象普通表一样进行 select 操作,可以建...
### Hive外部表创建详解 #### 一、引言 在大数据处理领域,Hive作为一款广泛使用的数据仓库工具,能够高效地对存储在Hadoop文件系统中的数据进行查询与管理。其中,外部表的创建是Hive使用过程中的一个重要概念。...
### ORACLE创建外部表知识点详解 #### 一、创建外部表背景及意义 在Oracle数据库中,外部表是一种特殊的表类型,它允许直接访问文件系统中的数据文件,而无需将这些数据加载到数据库中。这种方式既节省了存储空间...
hive双分区外部表复合数据结构博客的数据资料,欢迎下载。
本出版物针对以下用户编写: 数据库用户 数据库管理员 数据库安全管理员 数据库应用程序程序员 本手册假定您具备以下背景: 对于计算机、操作系统和...这些主题来自 GBase 8t SQL 语法指南GBase 8t 外部表数据快速加载
### Oracle外部表特性深入浅出 #### 一、外部表概述 外部表是Oracle自9i版本后引入的一个新特性,它不同于传统意义上的数据库表,实际上并不存储在数据库内部,而是指向操作系统中的某个文件。通过定义外部表的元...
CONTENTS 外部表构建 外部表连接 目录 01 外部表构建 外部表构建 (1)使用Access设计器创建表 外部表是指不存在于数据库中的表,是对数据库表的延伸。在Access数据库中可以通过Creat Table语句或者使用设计器来创建...
### Oracle数据库外部表详解 #### 一、外部表概述 **外部表(External Tables)**是Oracle数据库中一种特殊的数据存储方式,它允许用户通过普通的SQL查询操作来访问存储在数据库之外的数据文件中的数据。这种设计...
一:内部表和外部表的区别 创建表时使用关键字external创建的表就是外部表,没有使用该关键字创建的表就是内部表。 删除表时(drop table)内部表会删除hdfs对应路径,而外部表不会删除hdfs对应的路径, 删除表无论是...
Oracle数据库的外部表是一种特殊类型的表,它不同于常规的数据库表,不存储数据在数据库的表空间中,而是引用操作系统上的数据文件,如文本文件或二进制文件。外部表在Oracle数据库中以元数据的形式存在,其结构和...
BIEE 11G是Oracle公司推出的一款商业智能套件,它支持通过外部表来进行用户权限的认证。这种方法允许管理员将用户名、密码及角色信息存储在数据库表中,然后通过BI系统来查询这些信息,实现用户权限的验证。 首先,...
hive外部表使用语句
2. **创建外部表**:在数据库`hive`中创建一个名为`party`的外部表,并指定其字段类型。 - `year`字段为整型(`int`)。 - `type`字段为字符串类型(`string`)。 - `program`字段为字符串类型(`string`)。 - ...
1. **只读性**:外部表中的数据是只读的,这意味着不能直接在外部表上执行`INSERT`、`UPDATE`或`DELETE`等数据操纵语言(DML)操作。 2. **视图性质**:外部表类似于视图,可以通过查询来访问其数据,但与普通表不同...
《【多数据源系列】基于SpringCloud实现PostgreSQL外部表读取(附源码)》demo,项目解压后即可启动,里面包含外部表sql和原始表sql,建议先看我写的文章熟悉一下里面外部表相关原理和概念以及文章里面关于该demo的...
Hadoop-2.8.0-HA-Hive安装部署与HQL10.hive的基本语法--内部表和外部表.mp4