分享
 
 
 

用Oracle SQL实现文件访问

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Oracle9i有一个最引人注目的优点,这就是通过Oracle SQL访问非Oracle文件的能力。这一新功能被称做外部表(external tables),它对某些系统具有非常重要的作用,可以令非数据库应用程序利用外部文件,而且让这些文件被Oracle视作普通的数据表。

利用外部表即可定义服务器上几乎任何普通文件的结构,同时使得Oracle把这些文件看作真正的数据表,如图A所示。

正如你所看到的那样,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:\docs\pubsdb\queries目录:

SQL create Directory testdir as ‘c:\docs\pubsdb\queries’;

Directory Created.

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

程序清单A 所示。

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

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

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

外部表的局限性

由于外部表是一种崭新的特性,Oracle还不能完美地充分利用这一功能。在Oracle9i中这一特性还具有若干局限性,主要包括:

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

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

小结

通过Oracle访问普通文件具有很大用途。接下来的文章里我们将教你为Oracle定义电子数据表(spreadsheet)。这一技术对那些用户可以控制桌面电子表内系统范围参数的商用系统非常有用。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有