Oracle 创建外部表

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

  

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

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

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

  grant write,read on directory DIR_DATA to Test;

  2 将要导入的外部数据文件,Test_File.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_ctrr_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;

时间: 2024-10-19 17:03:30

Oracle 创建外部表的相关文章

oracle创建外部表

oracle db允许以只读的形式查询外部表.外部表可以存储在任何oracle db可以读取的存储设备中,其内容不在db中保存,db只保存external table的metadata,db可以查询(join.sort)external table,可以创建view.synonym,但不可以执行DML语句. 创建外部表语法create table --orginzition external,可以把外部表假想为一个view,可以正常的做select. analyze 和 虚拟列 表分析不使用与外

Hive创建外部表以及分区

创建带分区的外部表 创建外部表的优点是数据能够随时从hdfs中挂载进表中 使用分区的优点是能够缩短查询范围 以下的样例展示了怎样创建外部表 CREATE EXTERNAL TABLE my_daily_report( last_update string, col_a string, col_b string, col_c string, col_d string, col_e string, col_f string, col_g string, col_h string, col_i str

Oracle创建两表关联查询的视图

在项目开发中,有时候会用到多表查询,有很多种方法,比如关联,比如视图,但对于查询来说,视图查询是最快的,如果你的数据库的字段信息很多,那查询就得整表查,比如两表查询,我们就可以把要的字段抽取出来,放在视图中,这样查询时就只要查询视图中所要的字段,其他的就可以无视.下面我记录一下Oracle创建视图 大多人操作数据库是用Scott权限进行操作数据库,但Scott是没有创建视图的权限的,所以我们要进入管理员System账号,进去给Scott授权一个创建视图权限.进入System后,我们打入以下语句

oracle——创建数据表

创建数据表; create table 表名 ( 列明1 数据类型1 [约束性条件], 列明1 数据类型1 [约束性条件], …… ) tablespace 表空间 create table student05 ( student_id number not null, student_name varchar2(20), student_age number, status varchar2(2), version number default 0 ) tablespace test sele

oracle 创建数据表空间和用户

--创建临时表空间(不必须)create temporary tablespace zwtest tempfile 'D:\Java\oracle\oradata\zwtest.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; --创建表空间create tablespace zwtest_data--表空间名称 logging datafile 'D:\Java\oracle\oradata

oracle创建数据库表空间 用户 授权 导入 导出数据库

windows下可以使用向导一步一步创建数据库,注意编码. windows连接到某一个数据库实例(不然会默认到一个实例下面):set ORACLE_SID=TEST --登录开始创建表空间及可以操作的用户sqlplus / as sysdba; --创建表空间create tablespace db_test datafile 'D:\oracle\oradata\TEST\db_test.dbf' size 50m autoextend on; --查询创建好的表空间select defaul

用Toad for Oracle创建数据库表空间和用户

打开Toad, 1,菜单栏Session->new Connection-.打开如下窗口: 2,进入之后,菜单DatebaseàSechema  Brower...找到Table Space(表空间)选项卡 打开之后显示如下界面: 然后切换另一个选项卡:Date  Feiles(如图所示) 再点开之后: 点此处打开: 指定后,点OK 接下来是创建用户: 到此,你就可以用指定的用户名和密码使用数据库,创建表.视图.序列等等一系列的操作了

HIVE 创建外部分区表--利用HUE不能创建外部表

Create EXTERNAL table obd_data_2( imei string, ts timestamp, fuel_instant float, gps_speed float, gps_status string, gps_longitude float, gps_latitude float, direct_angle float, mileage_after int, mileage_before int, obdspeed int, torque int, front_x

oracle 创建暂时表

提交事务后会自己主动清空,不同的事务之间数据隔离 create global temporary table GLS_REPORT_EXPR ( EXPRNO VARCHAR2(30) not null, EXPR   VARCHAR2(1024) ) on commit delete rows