oracle外部表
关于外部表的描述
正确描述
the create table as select statement can be used to upload data into a normal table in the database from an external table
外部表表现得就像一般表,可以命名用create table as select来创建表,同时起到upload数据的作用
- 创建外部表必须使用 Directory 指定外部表的目的地,目录是数据库对象,相当于把物理目录映射成一个逻辑目录名
- 引入 directory 的好处是简化了在不同 OS 中对于物理目录路径的格式描述
- 通过 Sqlloader 和 Data pump 两种方法创建外部表时都必须使用指定的 directory
外部表数据字典
- xx_external_tables
- xx_external_locations
- xx_tables
- xx_tab_columns
- xx_directories
-- ORACLE_LOADER引擎建立外部表
create directory dir1 as '/home/oracle/dir1';
-- 生成csv格式数据,以逗号分隔,不要表并没有
-- 数据文件为emp1.dat
grant read,write on directory dir1 to public;
CREATE TABLE emp1_ext
(empno number,
ename varchar2(10),
sal number,
comm number,
deptno number)
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY dir1
ACCESS PARAMETERS (fields terminated by ','
missing field values are null)
LOCATION ('emp1.dat')
);
-- ORACLE_DATADUMP引警导入导出外部表
-- 输出内容为dmp文件
CREATE TABLE emp2_ext
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY dir1
LOCATION ('emp.dmp')
)
AS SELECT empno,ename,sal,comm,deptno FROM emp;
--- 输入为dmp
CREATE TABLE emp3_ext
(
empno number,
ename varchar2(10),
sal number,
comm number,
deptno number
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY dir1
LOCATION ('emp.dmp')
);
错误描述
the default reject limit for external tables is unlimited.
REJECT LIMIT UNLIMITED
在创建外部表时最后加入LIMIT子句,表示可以允许错误的发生个数。默认值为零。设定为UNLIMITED则错误不受限制
- 外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。
- ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS_STATS包来采集外部表的统计数据。
- 需要先建立目录对象
- 文件要有固定的格式、不能有标题列、访问时会自动创建一个日志文件
The data and metadata for an external table are stored outside the database
在创建外部表的时候,并没有在数据库中创建表,也不会为外部表分配任何的存储空间;
创建外部表只是在数据字典中创建了外部表的元数据,以便对应访问外部表中的数据,而不在数据库中存储外部表的数据;
由于没有存储实际数据,故无法为外部表创建索引,同时在数据使用DML时也不支持对外部表的插入、更新、删除等操作;
oracle loader and oracle datapump have exactly the same functionality when used with an external table.
一个是文本文件,主要用于跨平台数据移动,一个是二进制文件,只适用于oracle库间数据移动
Refer to: oracle 外部表
oracle外部表的更多相关文章
- 如何利用Oracle外部表导入文本文件的数据
同事最近在忙数据一致性比对工作,需要对不同文本文件中的数据进行比对,有的文件较大,记录较多,如果用普通的文本编辑器打开的话,很显然,会很卡,甚至打不开. 基于此,可将该文本文件的数据导入到数据库中,在 ...
- ORACLE外部表总结
外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件.因此,建立外部表时不会产生段.区.数据块等存储结构,只有与表相关的定义放在数据字典中.外部表 ...
- Oracle外部表的使用
外部表可以像其它表一样,用select语句作查询.但不能做DML操作,不能建index,不接受约束.这是因为它不是以段的形式存于数据库中,只是以数据字典构造存在,指向一个或多个操作系统文件. 外部表的 ...
- Oracle外部表详解(转载)
(外部表创建主要注意创建目录访问权限问题.目录路径格式无空格等不相关字符,即必须是当前表访问用户可以访问:关于表中行数的限制问题,如果不加限制注意添加reject limit unlimited:表中 ...
- Oracle外部表详解
外部表概述 外部表只能在Oracle 9i之后来使用.简单地说,外部表,是指不存在于数据库中的表.通过向Oracle提供描述外部表的元数据,我们可以把一个操作系统文件当成一个只读的数据库表,就像这些数 ...
- 使用oracle外部表进行数据泵卸载数据
数据泵卸载Oracle9i引入了外部表,作为向数据库中读取数据的一种方法.Oracle 10g则从另一个方向引入了这个特性,可以使用CREATE TABLE语句创建外部数据,从而由数据库卸载数据.从O ...
- Oracle外部表与SQLLDR
两种方法建立外部表 在建表语句中把EXTERNAL_TABLE参数设定为SQLLDR: 从12C起,可以使用模式来运行SQLLDR: 在建表语句中把EXTERNAL_TABLE参数设定为SQLLDR: ...
- sql*loader以及oracle外部表加载Date类型列
Oracle sqlldr LOAD DATAINFILE *INTO TABLE testFIELDS TERMINATED BY X'9'TRAILING NULLCOLS( c2 &quo ...
- Oracle外部表的管理和应用
外部表作为oracle的一种表类型,虽然不能像普通库表那么应用方便,但有时在数据迁移或数据加载时,也会带来极大的方便,有时比用sql*loader加载数据来的更为方便,下面就将建立和应用外部表的命令和 ...
随机推荐
- ASP.NET-FineUI开发实践-18
Grid编辑下垃级联 看了看专业版的例子,分为以下几步,都是前端的 1.编辑父下拉框后,重置子下拉框 2.编辑子下垃框前,通过父下垃框数据得到下垃项,然后绑定数据 所以这里要截取Grid的两个事件,编 ...
- React Native 入门基础知识总结
中秋在家闲得无事,想着做点啥,后来想想,为啥不学学 react native.在学习 React Native 时, 需要对前端(HTML,CSS,JavaScript)知识有所了解.对于JS,可以看 ...
- Perl的特殊代码块:BEGIN、CHECK、INIT、END和UNITCHECK
这是5个特殊的代码块.要理解这几个块,关键在于几个时间点: (1).程序编译期间 (2).程序执行期间 (3).程序执行结束但还未退出期间 BEGIN块 BEGIN块是在程序编译期间执行的,也就是上面 ...
- μC/OS-II 中的任务管理
1. 任务的状态及其转换 睡眠状态: 任务在没有被配备任务控制块或被剥夺了任务控制块时的状态叫做任务的睡眠状态. 等待状态: 正在运行的任务,需要等待一段时间或需要等待一个事件发生再运行时,该任务就会 ...
- Redis主从复制、多实例、高可用(三)--技术流ken
Redis主从复制 在开始实现redis的高可用之前,首先来学习一下如何实现redis的主从复制,毕竟高可用也会依赖主从复制的技术. Redis的主从复制,可以实现一个主节点master可以有多个从节 ...
- [转]分别使用Node.js Express 和 Koa 做简单的登录页
本文转自:https://blog.csdn.net/weixin_38498554/article/details/79204240 刚刚学了Koa2,由于学的不是很深,并没有感受到网上所说的Koa ...
- [转]bitcoin: 通过 rpc 请求节点数据
本文转自:https://laravel-china.org/index.php/articles/8919/bitcoin-requests-node-data-through-rpc 文章来自本人 ...
- 对象引用对于非静态的字段、方法、属性Program.Print()是必需的
在学习重载是以下代码报错: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- 第五讲 smart qq poll包处理 以及 私聊 群聊消息收发
发送 poll包 public static void Login_PostPoll() { try { string url = "http://d1.web2.qq.com/channe ...
- Fundebug能够捕获这些BUG
摘要:Fundebug的JavaScript监控插件更新至0.1.0,可以监控3种不同类型的前端BUG:JavaScript执行错误.资源加载错误.HTTP请求错误. 从简单的onerror开始,Fu ...