知识大全 三步教会你掌握Oracle外表(externaltable)
Posted 知
篇首语:不塞不流,不止不行。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 三步教会你掌握Oracle外表(externaltable)相关的知识,希望对你有一定的参考价值。
三步教会你掌握Oracle外表(externaltable) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
外表(external table)就像普通的表对像一样 可以select等 只是它是只读的 数据库中只保存了表结构的描述 表数据却没有存放在数据库内 而是存放在了文件系统上 当用户想偶尔使用数据库外的结构化数据时 用起外表来就非常方便 甚至比sqlldr都要方便的多 在这篇文章里 我们为大家演示了
三步就掌握Oracle外表过程 通过这次学习 也许大家就会发展原来学习oracle也是好容易哦
第一步 创建目录并授权
目录是数据文件的存放目标 数据文件通常要求是文本文件 这个过程在 i以前是需要配置utl_file_dir参数的 复制内容到剪贴板
代码 !ls >sys@TEST>!ls /home/oracle/temp user ctl userlist txt user log rudolf@TEST> conn >sys@TEST>conn system/alibaba Connected sys@TEST> CREATE >sys@TEST>CREATE DIRECTORY TEMP AS /home/oracle/temp/ ; Directory created grant >sys@TEST>grant read write on directory TEMP to rudolf; Grant succeeded
第二步 创建外表与测试 复制内容到剪贴板
代码 cellPadding= width= % bgColor=#ffffff border= > CREATE >rudolf@TEST>CREATE TABLE USERLIST ( ID NUMBER USERNAME VARCHAR ( ) EMAIL VARCHAR ( ) ) ORGANIZATION external ( TYPE oracle_loader DEFAULT DIRECTORY TEMP Access PARAMETERS ( RECORDS DELIMITED BY NEWLINE CHARACTERSET US ASCII BADFILE TEMP : userlist bad DISCARDFILE TEMP : userlist dis LOGFILE TEMP : user log READSIZE FIELDS TERMINATED BY OPTIONALLY ENCLOSED BY LDRTRIM MISSING FIELD VALUES ARE NULL REJECT ROWS WITH ALL NULL FIELDS ( ID CHAR( ) TERMINATED BY OPTIONALLY ENCLOSED BY
cellPadding= width= % bgColor=#ffffff border= > USERNAME CHAR( ) TERMINATED BY OPTIONALLY ENCLOSED BY EMAIL CHAR( ) TERMINATED BY OPTIONALLY ENCLOSED BY ) ) location ( userlist txt ) )REJECT LIMIT UNLIMITED / >rudolf@TEST>/ Table created l >rudolf@TEST>l select id username from userlist where rownum < * / >rudolf@TEST>/ ID USERNAME RudolfLu tomgu coug chao_ping parrotao cnoug FilsDeDragon Dragon rows selected
瞧 成功了 外表就这么简单 可是只有二步啊 第三步在哪里呢?你也许会问 还有啊 userlist txt要固定的格式吗?create table……的语法这样的狂复杂 每一项都是什么含义呢?
这就是第三步要教给大家的东西了
第三步 理解外表数据结构与create table …… anization external语法
大家都用过sqlldr吧?外表的数据文件的结构呢就同sqlldr能读的数据文件结构一样了 那么语法呢?嘿嘿 别急 让我们先来做个sqlldr的练习吧 cellPadding= width= % bgColor=#ffffff border= > [oracle@rac temp]$ head userlist txt RudolfLu tomgu coug chao_ping parrotao cnoug FilsDeDragon Dragon Xavier [oracle@rac temp]$ cat user ctl LOAD INFILE /home/oracle/temp/userlist txt badfile /home/oracle/temp/userlist bad discardfile /home/oracle/temp/userlist dis
cellPadding= width= % bgColor=#ffffff border= > APPEND INTO TABLE userlist fields terminated by optionally enclosed by trailing nullcols ( id char( ) username char( ) ) create >rudolf@TEST>create table userlist (id number username varchar ( ) ); Table created rudolf@TEST>! [oracle@rac temp]$ sqlldr rudolf/nix@test world control= /user ctl external_table=GENERATE_ONLY
注意 我们加了一个external_table的参数 它的作用是告诉sqlldr不用真实load数据 而是生成包含external table 创建脚本的log文件 cellPadding= width= % bgColor=#ffffff border= > [oracle@rac temp]$ ls user ctl userlist txt user log [oracle@rac temp]$ cat user log SQL*Loader: Release Production on Wed Dec : : Copyright (c) Oracle Corporation All rights reserved Control File: /user ctl Data File: /home/oracle/temp/userlist txt Bad File: /home/oracle/temp/userlist bad Discard File: /home/oracle/temp/userlist dis CREATE DIRECTORY statements needed for files CREATE DIRECTORY SYS_SQLLDR_XT_TMPDIR_ AS /home/oracle/temp/ CREATE TABLE statement for external table: CREATE TABLE SYS_SQLLDR_X_EXT_USERLIST ( ID NUMBER USERNAME VARCHAR ( ) ) ORGANIZATION external ( TYPE oracle_loader cellPadding= width= % bgColor=#ffffff border= > DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_ ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE CHARACTERSET US ASCII BADFILE SYS_SQLLDR_XT_TMPDIR_ : userlist bad DISCARDFILE SYS_SQLLDR_XT_TMPDIR_ : userlist dis LOGFILE user log_xt READSIZE FIELDS TERMINATED BY OPTIONALLY ENCLOSED BY LDRTRIM MISSING FIELD VALUES ARE NULL REJECT ROWS WITH ALL NULL FIELDS ( ID CHAR( ) TERMINATED BY OPTIONALLY ENCLOSED BY USERNAME CHAR( ) TERMINATED BY OPTIONALLY ENCLOSED BY ) ) location ( userlist txt ) )REJECT LIMIT UNLIMITED瞧 原来我们更本不用担心怎么写create external table的语句呢 sqlldr就可以帮我们生成了!
cha138/Article/program/Oracle/201311/18052相关参考
教你快速掌握一个简单的Oracle定时任务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一在PLS
教你快速掌握Oracle数据库的备份策略 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 主要介绍
教你快速掌握Oracle数据库中的bfile 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 具体
教你轻松掌握Oracle数据库的后备和恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 当我们
教你轻松掌握Oracle9i里指针共享的增强 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在O
对ORACLE的外部表的简单介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! External
Oracle中左右连接外表带条件的写法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!研究时测试用的
如果说可以及时的诊断出一种疾病,对于我们进行治疗是非常有帮助作用的,毕竟要在疾病的最佳治疗时间进行治疗这样的道理,我们每个人都很清楚,那么对于银屑病有应该如何来诊断呢?首先来了解银屑病的发病部位在哪里
C语言之extern声明辨析[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 问题exter
C语言之extern声明辨析[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb