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外部表的简单用法。还有很多关于外部表的用法可以参考:
http://docs.oracle.com/cd/B14117_01/server.101/b10825/et_params.htm
Oracle外部表的使用的更多相关文章
- 如何利用Oracle外部表导入文本文件的数据
同事最近在忙数据一致性比对工作,需要对不同文本文件中的数据进行比对,有的文件较大,记录较多,如果用普通的文本编辑器打开的话,很显然,会很卡,甚至打不开. 基于此,可将该文本文件的数据导入到数据库中,在 ...
- ORACLE外部表总结
外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件.因此,建立外部表时不会产生段.区.数据块等存储结构,只有与表相关的定义放在数据字典中.外部表 ...
- Oracle外部表详解(转载)
(外部表创建主要注意创建目录访问权限问题.目录路径格式无空格等不相关字符,即必须是当前表访问用户可以访问:关于表中行数的限制问题,如果不加限制注意添加reject limit unlimited:表中 ...
- oracle外部表
关于外部表的描述 正确描述 the create table as select statement can be used to upload data into a normal table in ...
- 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加载数据来的更为方便,下面就将建立和应用外部表的命令和 ...
随机推荐
- Visual studio 2012 添加 GitHub
文件-新建项目
- [转]Oracle EBS APIs
FROM:http://blog.csdn.net/pan_tian/article/details/7754598 API To Find Sales Order's Subtotal,discou ...
- 双向BFS
转自“Yuan” 如果目标也已知的话,用双向BFS能很大提高速度 单向时,是 b^len的扩展. 双向的话,2*b^(len/2) 快了很多,特别是分支因子b较大时 至于实现上,网上有些做法是用两个 ...
- C# WPF 连接数据库Sqlhelper类
从视频上学习到的WPF连接数据库的方法 需要配置一个 configuration 文件,包含 SQL instance 的相关信息 using System; using System.Collect ...
- WebAPI GET和POST请求的几种方式
GET请求 1.无参数get请求 一般get请求有两种写法,一种是$.get() 一种是$.ajax({type:"get"}),我个人比较喜欢用后者. 下面例子主要是get无 ...
- windows下cmd命令行显示UTF8字符设置(CHCP命令)
本文由 www.169it.com 收集整理 在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容.在默认情况下 ...
- asp.net发布webservice出现‘Could not write to output file ‘解决办法
Could not write to output file 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET File ...
- PHP学习笔记 - 进阶篇(5)
PHP学习笔记 - 进阶篇(5) 正则表达式 什么叫正则表达式 正则表达式是对字符串进行操作的一种逻辑公式,就是用一些特定的字符组合成一个规则字符串,称之为正则匹配模式. $p = '/apple/' ...
- PHP学习笔记 - 入门篇(2)
PHP入门篇(2) 什么是变量 变量是用于存储值的容器,如下 $var = @"6666" 如何定义变量 定义变量就是像服务器的内存申请空间,用来存储数据,eg: <?php ...
- ASP.NET MVC3 使用kindeditor编辑器获取不到值
做开发真的是会遇到各种问题,如果不亲自尝试,不动手,很难发现问题. 下面我们说下在MVC中的用法 1,首先引入js文件 <script type="text/javascript&qu ...