Oracle 外部表能迅速的将海量的数据导入到数据库里面,外部表的创建使用步骤如下:

  

  1 创建一个Directory:必须用sys用户创建,用户存放外部数据文件。

  create directory DIR_DATA as '/home/oracle/oradata/IN';

  给用户授权目录的使用权限,否则用户不能访问该目录以及其下的文件

  grant write,read on directory DIR_DATA to Test;

  2 将要导入的外部数据文件,test.csv 放到目录下,注意文件每个字段的分隔符,此处csv每列的分隔符为英文的分号";" 内容如下

NAME;NAME_DESC
Latiny1;latiny test file
Latiny2;latiny test file
Latiny3;latiny test file
Latiny4;latiny test file
Latiny5;latiny test file
Latiny6;latiny test file
Latiny7;latiny test file
Latiny8;latiny test file
Latiny9;latiny test file
Latiny10;latiny test file

  3 创建语句

create table ext_test
(
name char(256),
name_desc char(256)
)
organization external
(
type oracle_loader
default directory DIR_DATA
access parameters
(
records delimited by newline
badfile dir_ctrr_data:'test..bad'
logfile dir_ctrr_data:'test..log'
discardfile dir_ctrr_data:'test..dsc'
skip 1
fields terminated by';'
reject rows with all null fields
(
NAME char(256),
NAME_DESC char(256)
)
)
location ('test.csv')
)
reject limit unlimited
parallel;

  参数说明:

1) organization external  -- 关键字,必须要有。以表明定义的表为外部表。
2) type           -- 外部表的类型
oracle_loader        -- 定义外部表的缺省方式,只能只读方式实现文本数据的装载。
oracle_datapump      -- 支持对数据的装载与卸载,数据文件必须为二进制dump文件。可以从外部表提取数据装载到内部表,也可以从内部表卸载数据作为二进制文件填充到外部表。

3) default directory        --缺省的目录指明了外部文件所在的路径
4) location          -- 定义了外部表的位置
5) access parameters         -- 描述如何对外部表进行访问
records  -- 关键字后定义如何识别数据行
delimited by 'xxx'    --换行符,常用newline定义换行,并指明字符集。对于特殊的字符则需要单独定义,如特殊符号,可以使用ox'十六位值',例如tab(/t)的十六位是9,则delimitedby0x'09';cr(/r)的十六位是d,那么就是delimitedby0x'0d'。
skip x   -- 跳过x行数据,有些文件中第一行是列名,需要跳过第一行,则使用skip 1。
fields   -- 关键字后定义如何识别字段,常用的如下:
fields:terminated by 'x'   --字段分割符。
enclosed by 'x'        --字段引用符,包含在此符号内的数据都当成一个字段。例如一行数据格式如:"abc","a""b,""c,"。使用参数terminated by ',' enclosed by '"'后,系统会读到两个字段,第一个字段的值是abc,第二个字段值是a"b,"c,。
lrtrim               --删除首尾空白字符。
missing field values are null  --某些字段空缺值都设为null。对于字段长度和分割符不确定且准备用作外部表文件,可以使用ultraedit、editplus等来进行分析测试,如果文件较大,则需要考虑将文件分割成小文件并从中提取数据进行测试。

6) fields terminated by ","        --描述字段的终止符
7) reject limit unlimited         --描述允许的错误数,此处为无限制

  4 查看数据

  select * from ext_test;

Oracle 创建外部表的更多相关文章

  1. Oracle 之 外部表

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

  2. Oracle使用外部表批量创建用户

    整体思路:通过使用外部表将用户名导入Oracle的表中,然后通过PL/SQL遍历数据表,批量创建用户. 具体步骤如下: 1.在安装数据库的服务器的C盘根目录创建一个User List.txt文件,内容 ...

  3. Oracle的外部表

    一.外部表特性 数据文件位于操作系统之外,并且具有一定的格式分割的文本文件或其他类型文件.ORACLE的外部表通过SQL的形式访问数据文件中的数据,数据并不需要加载到数据库中且数据是可读的,所以不用D ...

  4. 创建外部表步骤及解决ORA-29913:执行ODCIETTABLEOPEN调出时出错

    创建外部表步骤 建立目录对象(用sys用户创建.授权) 外部表所在路径一定要写对!!! create directory ext_data as 'D:\ORACLE'; grant read,wri ...

  5. Hive创建外部表以及分区

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/27874943 创建带分区的外部表 创建外部 ...

  6. Oracle 创建数据表

    数据库中的每一个表都被一个模式(或用户)所拥有,因此表是一种典型的模式对象.在创建数据表时,Oracle 将在一个指定的表空间中为其分配存储空间.最初创建的表时一个空的逻辑存储结构,其中不包含任何数据 ...

  7. Oracle创建测试表

    试中文排序的数据库版本: SQL> select * from v$version; BANNER ----------------------------------------------- ...

  8. 第2节 hive基本操作:9、hive当中创建外部表的语法及外部表的操作&分区表的语法和操作

    外部表: 外部表说明: 外部表因为是指定其他的hdfs路径的数据加载到表当中来,所以hive表会认为自己不完全独占这份数据,所以删除hive表的时候,数据仍然存放在hdfs当中,不会删掉 管理表和外部 ...

  9. oracle创建默认表空间---重要

    当oracle创建数据库后,sys创建用户时还要有默认表空间.不创建默认表空间在导如项目时会有些数据表导入不成功! 由于时间仓促以截屏为例  之后会在刚刚那个空文件生成一个文件 ----------- ...

随机推荐

  1. python3内置函数练习

    1. abs() abs() 函数返回数字的绝对值. print(abs(1.5236)) # 1.5236 print(abs(1.0)) # 1.0 2. all() all() 函数用于判断给定 ...

  2. python 逻辑判断 循环练习题

    # 1.判断下列列逻辑语句句的True,False.# 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 ...

  3. 用户对动态PHP网页访问过程,以及nginx解析php步骤

    www.example.com | Nginx | 路由到www.example.com/index.php | 加载nginx的fast-cgi模块 | fast-cgi监听127.0.0.1:90 ...

  4. Python学习笔记(3)-字符串

    创建字符串 一对单引号或双引号 >>> 'hello world' 'hello world' >>> "hello world" 'hello ...

  5. pycharm 安装及使用

    pycharm 的使用: IDE 集成开发环境(Integrated Development Environment) VIM 经典的Linux下的文本编辑器 EMACS: Linux文本编辑器,比v ...

  6. ScriptManager的几个属性和方法

    ScriptManager的几个属性和方法   一.EnablePageMethods ScriptManager的EnablePageMethods属性用于设定客户端javascript直接调用服务 ...

  7. mac python3 conda pytorch出错:libc++abi.dylib: terminating with uncaught exception of type NSException

    mac 10.14/ conda/python 3.7环境下运行神经网络例子出现错误: -- :::] -[NSApplication _setup:]: unrecognized selector ...

  8. java操作Redis缓存设置过期时间

    关于Redis的概念和应用本文就不再详解了,说一下怎么在java应用中设置过期时间. 在应用中我们会需要使用redis设置过期时间,比如单点登录中我们需要随机生成一个token作为key,将用户的信息 ...

  9. python:面向对象编程之Zope.interface安装使用

    持续学习python+django中... 一.接口简述 在我们所熟知的面向对象编程语言中,大多提供了接口(interface)的概念.接口在编程语言中指的是一个抽象类型,是抽象方法的集合:它的特点如 ...

  10. mysql基本知识点梳理和查询优化

    目录 一.索引相关 二.EXPLIAN中有用的信息 三.字段类型和编码 四.SQL语句总结 五.踩坑 六.千万大表在线修改 七.慢查询日志 八.查看sql进程和杀死进程 九.一些数据库性能的思考 本文 ...