对外部表的理解及测试,,,,如有理解不正确请大家指正

语法:

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错误的更多相关文章

  1. 如何利用Oracle外部表导入文本文件的数据

    同事最近在忙数据一致性比对工作,需要对不同文本文件中的数据进行比对,有的文件较大,记录较多,如果用普通的文本编辑器打开的话,很显然,会很卡,甚至打不开. 基于此,可将该文本文件的数据导入到数据库中,在 ...

  2. ORACLE外部表总结

    外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件.因此,建立外部表时不会产生段.区.数据块等存储结构,只有与表相关的定义放在数据字典中.外部表 ...

  3. Oracle外部表的使用

    外部表可以像其它表一样,用select语句作查询.但不能做DML操作,不能建index,不接受约束.这是因为它不是以段的形式存于数据库中,只是以数据字典构造存在,指向一个或多个操作系统文件. 外部表的 ...

  4. Oracle外部表详解(转载)

    (外部表创建主要注意创建目录访问权限问题.目录路径格式无空格等不相关字符,即必须是当前表访问用户可以访问:关于表中行数的限制问题,如果不加限制注意添加reject limit unlimited:表中 ...

  5. oracle外部表

    关于外部表的描述 正确描述 the create table as select statement can be used to upload data into a normal table in ...

  6. Oracle外部表详解

    外部表概述 外部表只能在Oracle 9i之后来使用.简单地说,外部表,是指不存在于数据库中的表.通过向Oracle提供描述外部表的元数据,我们可以把一个操作系统文件当成一个只读的数据库表,就像这些数 ...

  7. 外部表查询时出现ORA-29913和ORA-29400错误

    create table t_ext_tab(id char(1),name char(6)) organization external( type oracle_loader default di ...

  8. Oracle外部表与SQLLDR

    两种方法建立外部表 在建表语句中把EXTERNAL_TABLE参数设定为SQLLDR: 从12C起,可以使用模式来运行SQLLDR: 在建表语句中把EXTERNAL_TABLE参数设定为SQLLDR: ...

  9. 使用oracle外部表进行数据泵卸载数据

    数据泵卸载Oracle9i引入了外部表,作为向数据库中读取数据的一种方法.Oracle 10g则从另一个方向引入了这个特性,可以使用CREATE TABLE语句创建外部数据,从而由数据库卸载数据.从O ...

随机推荐

  1. Linux下汇编语言学习笔记76 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  2. Linux RAR 解压缩

    1.下载 http://www.rarlab.com/download.htm 2.安装 tar zxvf rarlinux-3.8.0.tar.gz cd rar make make install ...

  3. SAP Portal 上传资源到WRR

    Uploading Resources to the Web Resource Repository Prerequisites You have been assigned the Content ...

  4. 美河LINUX 内核学习视频

    Linux内核从原理到代码详解 培训视频 Linux内核源码研读与实战演练 [7.10][美河资料发布小组@aipepsi][linux内核分析视频教程] 炼数成金Linux内核探秘 [11.23][ ...

  5. vmware 10虚拟机安装ubuntu server 14.04

    -開始安装ubuntu server- 1.首先是安装系统时的语言,推荐选择English 然后安装系统 这里选择语言非常重要,我開始选择了中文,安装完毕后会乱码,所以推荐选择英文 由于在中国.所以选 ...

  6. SOA究竟是个啥

    SOA(Service-Oriented Architecture),中文全称:面向服务的架构. SOA让把系统分离成不同的服务,使用接口来进行数据交互,终于达到整合系统的目的. 专业的词总是让人懵懵 ...

  7. 负margin使用注意的一个问题

    在项目实力中经经常使用到负margin 如: <div id="test"> <ul> <li>子元素1</li> <li&g ...

  8. 将jsp页面的<s:iterator>的数据返回到action

    jsp: <form method="post" id="createTable"> <table width="98%" ...

  9. 一次次迭代 百度语音生成 api 字幕 语音的同步性 关键

    发音字符 数一样 D:\myv\semHAND9myuid1523961381.avi 0.7053863117786668 --------------- 深圳市雅超服饰有限公司是一家专业设计制作高 ...

  10. 机器视觉: LBP-TOP

    之前介绍过机器视觉中常用到的一种特征:LBP http://blog.csdn.net/matrix_space/article/details/50481641 LBP可以有效地处理光照变化,在纹理 ...