oracle 外部表及解决ora-29400,ora-29913错误
对外部表的理解及测试,,,,如有理解不正确请大家指正
语法:
create table 表名(
列名1,列名2,......
)
organization external ###说明创建外部表
(
type 访问类型 ###一般是 ORACLE_LOADER ,ORACLE_DATAPUMP
default directory 路径名 ####指定默认目录对象
access parameter ( ###数据源文件与表中行之间的映射关系
records delimited by 设置分隔符 ###一般是newline
[badfile 路径名:'文件名'] ##存放错误日志的目录和文件名
[logfile 路径名:'文件名'] ##日志的目录和文件名
[discardfile 路径名:'文件名'] ###废弃文件存放的目录和文件名
fields terminated by '分隔符' ###设置文件中字段的分隔符
[ missing field values are null] ##无值字段的处理
[reject rows with all null fields] ##无值行的处理
( 列名1, 列名2, .....)
)
location (路径名:'数据文件名')
)
[reject limit(或unlimited) 数值 ] ###设置多少行转换失败时返回oracle错误,默认为0
[parallel]
例子:
1.在系统下创建三个目录
/home/oracle/test_folder/data --数据文件目录
touch test.dat --数据文件
录入数据
1001,abc,2013/07/12,1000
1002,abcd,2014/01/31,1000
1003,bdc,2012/03/12,1020
/home/oracle/test_folder/log --日志文件目录
touch test.log --日志文件
/home/oracle/test_folder/bad --错误文件目录
touch test.bad --错误文件
2.创建目录
登陆 conn / as sysdba 下
create or replace directory DATA_DIR AS '/home/oracle/test_folder/data' ; --数据文件目录
create or replace directory LOG_DIR AS '/home/oracle/test_folder/log' ;--日志文件目录
create or replace directory BAD_DIR AS '/home/oracle/test_folder/bad' ;--错误文件目录
3.授权
grant write ,read on directory DATA_DIR to scott;
grant write ,read on directory LOG_DIR to scott;
grant write ,read on directory BAD_DIR to scott;
3.创建表
###在scott 用户下
create table ext_emp
(
emp_no varchar2(10),
epm_name varchar2(20),
hirte_date date,
comm number
)
organization external
(
type ORACLE_LOADER
default directory DATA_DIR
access parameters
(
records delimited by newline
badfile BAD_DIR:'test.bad'
logfile LOG_DIR:'test.log'
fields terminated by ','
(
emp_no,
epm_name,
hirte_date char date_format date mask 'yyyy-mm-dd',
comm
)
)
location('test.dat')
)
parallel
reject limit unlimited;
注意: 如果在access parameters 中 注释一些没有用的代码,系统认为这是不符合规则的语句,所以产生错误。
原因是我在测试的时候注释一些内容,所以查询的时候一直报错。
然后在网上找了报错的原因,一般都是说这是创建目录和授权及目录和文件访问权限或文件数据问题或语法引起的问题,
然后一个一个排除是否是这些原因引起错误,后来发现都不是这些因素。
最后重新建表才发现是注释引起的错误。。。。。(抓狂啊)
例如:
access parameters
(
records delimited by newline
badfile DATA_DIR:'zlc.bad'
logfile DATA_DIR:'zlc.log'
fields terminated by ','
-- missing field values are null 这两句可选的,
-- reject rows with all null fields
(
emp_no,
epm_name,
hirte_date char date_format date mask 'yyyy-mm-dd',
comm
)
)
如图:

然后查看 表结构发现 访问参数里面有注释 ,如图

---把上面的注释去掉问题就解决了。
select * from ext_emp
oracle 外部表及解决ora-29400,ora-29913错误的更多相关文章
- 如何利用Oracle外部表导入文本文件的数据
同事最近在忙数据一致性比对工作,需要对不同文本文件中的数据进行比对,有的文件较大,记录较多,如果用普通的文本编辑器打开的话,很显然,会很卡,甚至打不开. 基于此,可将该文本文件的数据导入到数据库中,在 ...
- ORACLE外部表总结
外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件.因此,建立外部表时不会产生段.区.数据块等存储结构,只有与表相关的定义放在数据字典中.外部表 ...
- Oracle外部表的使用
外部表可以像其它表一样,用select语句作查询.但不能做DML操作,不能建index,不接受约束.这是因为它不是以段的形式存于数据库中,只是以数据字典构造存在,指向一个或多个操作系统文件. 外部表的 ...
- 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提供描述外部表的元数据,我们可以把一个操作系统文件当成一个只读的数据库表,就像这些数 ...
- 外部表查询时出现ORA-29913和ORA-29400错误
create table t_ext_tab(id char(1),name char(6)) organization external( type oracle_loader default di ...
- Oracle外部表与SQLLDR
两种方法建立外部表 在建表语句中把EXTERNAL_TABLE参数设定为SQLLDR: 从12C起,可以使用模式来运行SQLLDR: 在建表语句中把EXTERNAL_TABLE参数设定为SQLLDR: ...
- 使用oracle外部表进行数据泵卸载数据
数据泵卸载Oracle9i引入了外部表,作为向数据库中读取数据的一种方法.Oracle 10g则从另一个方向引入了这个特性,可以使用CREATE TABLE语句创建外部数据,从而由数据库卸载数据.从O ...
随机推荐
- django自身提供的sitemap和feed实现样例
<DJANGO BY EXAMPLE>这书的例子真是精心全过的, 基本的WEB开发过程全覆盖啊. 跟着一步一步的弄就OK啦..可以长很多知道的. 这次跟着作的是sitemap和feed功能 ...
- Filter过滤器机制
tomcat内部过滤器采用了责任链的设计模式, Tomcat的过滤器主要由Filter.FilterChain组成,FilterChain包含一个Filter数组.当Wrapper执行FilterCh ...
- Json解析工具Jackson(使用注解)--jackson框架自定义的一些json解析注解
Json解析工具Jackson(使用注解)--jackson框架自定义的一些json解析注解 @JsonIgnoreProperties 此注解是类注解,作用是json序列化时将Javabean中的一 ...
- [容斥原理] hdu 1796 How many integers can you find
题意: 给一个N.然后给M个数,问1~N-1里面有多少个数能被这M个数中一个或多个数整除. 思路: 首先要N-- 然后对于每一个数M 事实上1~N-1内能被其整除的 就是有(N-1)/M[i]个 可是 ...
- 自由宣言--《I Have a Dream》(马丁.路德.金)
I Have a Dream by Martin Luther King, Jr. I am happy to join with you today in what will go down in ...
- Raphael.js image 在ie8以下的兼容性问题
Raphael.js 在ie7,ie8浏览器内绘制图形採用的vml,在绘制image的时候会解析成 <?xml:namespace prefix = "rvml" ns = ...
- [Unity 设计模式]IOC依赖倒置
1.前言 最近在看<游戏开发与设计模式>一书,看到控制反转设计模式,作者说:上层模块不应该依赖于下层模块,上层模块和下层模块都应该依赖于接口,这样能减少耦合.然后附带举了个例子,我觉得特别 ...
- go语言笔记——还是大爱的我的python,开发效果高,tornado的性能也很不错
Go 自带的工具集主要使用脚本和 Go 语言自身编写的,目前版本的 Go 实现了以下三个工具: go install 是安装 Go 包的工具,类似 Ruby 中的 rubygems.主要用于安装非标准 ...
- Makefile 实际用例分析(二) ------- 比较通用的一种架构
之前已经讲了这一篇文章:Makefile实际用例分析(一)-----比较通用的一种架构 现在这篇其实和那个差的不是很多,只是在布局上有些差别(这个makefile也是论坛上一起讨论过的,囧,忘了哪个论 ...
- bzoj3663
几何+lis 很巧妙.直接做很困难,那么我们转化一下,把每个点能看见的圆弧画出来.只有这些圆弧相交时才满足条件. 那么也就是找出圆上尽量多两两相交的区间. 所以我们先按左端点极角排序,然后固定一个必须 ...