网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  实例解析:数据库应用程序利用外部文件     
  文章作者:未知  文章来源:未知  
  查看:144次  录入:管理员--2007-09-01  
   

Oracle9i有一个最引人注目的优点,这就是通过Oracle SQL访问非Oracle文件的能力。这

一新功能被称做外部表(external tables),它对某些系统具有非常重要的作用,可以令非

数据库应用程序利用外部文件,而且让这些文件被Oracle视作普通的数据表。

正如你所看到的那样,Oracle让数据库程序采用utl_file实用工具写普通文件。结合外部

表的读取能力,这种新型拓扑不再需要所有的Oracle数据驻留在Oracle表内,也不需要为

Oracle打开新的应用程序。下面我们就深入了解这种新特性的工作原理。

定义外部表

假设你要求Oracle引用以下逗号分隔的普通文本文件。

7369,SMITH,CLERK,7902,17-DEC-80,800,20 
7499,ALLEN,SALESMAN,7698,20-FEB-81,1600,300,30
7521,WARD,SALESMAN,7698,22-FEB-81,1250,500,30
7566,JONES,MANAGER,7839,02-APR-81,2975,,20
7654,MARTIN,SALESMAN,7698,28-SEP-81,1250,1400,30
7698,BLAKE,MANAGER,7839,01-MAY-81,2850,,30
7782,CLARK,MANAGER,7839,09-JUN-81,2450,,10
7788,SCOTT,ANALYST,7566,19-APR-87,3000,,20
7839,KING,PRESIDENT,,17-NOV-81,5000,,10 
7844,TURNER,SALESMAN,7698,08-SEP-81,1500,0,30
7876,ADAMS,CLERK,7788,23-MAY-87,1100,,20

以上文件包含一些职员信息:

职员工号 姓名 职务说明 经理的工号参加工作日期 薪水 任命 部门

那么该如何给Oracle定义这一文件呢?首先,我们必须在数据字典中创建一个Oracle目录

入口,而数据字典则指向以上文件所驻留的Windows目录。在这个例子中我们把目录命名为

testdir并指向c:docspubsdbqueries目录:

SQL> create directory testdir as ‘c:docspubsdbqueries’;

Directory Created.

现在目录创建完毕,我们可以给Oracle定义外部表的结构了。代码如

程序清单A 所示。

从语法上看,我们对外部表列的定义方式同内部Oracle表的定义方式是一样的。外部定义采用有住址的外部子句,如表A所示。

外部表定义好后就可以用SQL对外部表运行报告了,其工作方式就好象驻留在数据库内的普通数据表。查询示例如

程序清单B所示,注意高级ROLLUP参数的复杂用法总计了部门和职位的薪水。结果如 程序清单C所示。

外部表的局限性

由于外部表是一种崭新的特性,Oracle还不能完美地充分利用这一功能。在Oracle9i中

不支持DML。外部表都是只读的,但是原始数据可以用任何文本编辑器进行编辑。

高强度查询的响应较为迟钝。外部表具有一定的处理负载,不太适合大型表的应用。

 
 
上一篇: 数据字典管理的表空间存在着效率问题    下一篇: 实例解析Oracle是共享模式还是专用模式
  相关文档
如何将oracle数据库的普通表转换成分区表 (1) 05-05
全面剖析Oracle数据库中的分区功能 04-11
Oracle中细粒度访问控制的工作方式 04-12
用events 跟踪解决不能创建物化试图一例 06-17
数据库迁移过程中使用热备份进行分时恢复 (1) 05-14
如何在相对空闲的rac实例中强制自动切换 04-16
关闭ORACLE SERVLET ENGINE 11-12
经验总结:一次oracle数据库冷备份恢复过程 08-18
深入讲解oracle数据库的多栏输出语句 03-18
教你轻松掌握如何用toad或oem管理job 02-28
讲解oracle中job与存储过程的接合用法 03-13
三步教会你掌握oracle外表(external table) 08-18
讲解linux环境下oracle的自动启动与停止 03-31
讲解基于Oracle高性能动态SQL程序开发 06-03
三方面描述Oracle优化R方法(Method R) 05-27
深入研究Oracle数据库空间管理方法 04-11
带你深入了解oracle数据库的热备份原理 05-14
讲解oracle数据库应用程序中raid的级别 05-05
分享Oracle9i中建立自增字段的最新办法 08-05
手工创建数据库的全部脚本及其说明 04-11
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息