首页 > 代码库 > 外部表1(简单测试)
外部表1(简单测试)
外部表,是指不存在于数据库中的表。通过向Oracle提供描述外部表的元数据,我们可以把一个操作系统文件(如EXCEL、CSV、DAT或TXT文件)当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中一样来进行访问。外部表是对数据库表的延伸。
1、使用sys用户建立逻辑目录,并给指定的用户授予权限。
(要有对操作系统中该目录的读写权限,直接使用scott用户建立,提示权限不足):
SQL> create directory testDir1 as ‘D:\oracletest\testDir‘;Directory created====授权SQL> grant read on directory testDir1 to scott;Grant succeededSQL> grant write on directory testDir1 to scott;Grant succeeded
===============
2、准备数据文件:
将测试数据文件testEmp.txt文件放在D:\oracletest\testDir目录下。文件内容:
7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMAN7566 JONES MANAGER7654 MARTIN SALESMAN7698 BLAKE MANAGER7782 CLARK MANAGER7788 SCOTT ANALYST7839 KING PRESIDENT7844 TURNER SALESMAN7876 ADAMS CLERK7900 JAMES CLERK7902 FORD ANALYST7934 MILLER CLERK
3、创建外部表testExtEmp
SQL> create table testExtEmp(2 empno number(4),ename varchar2(10),job varchar2(9))3 organization external (4 type oracle_loader --数据转换驱动器,oracle_loader为默认,也可以改换其他,如oracle_datapump5 default directory testDir1 --指定外部表所在目录6 access parameters (fields terminated by whitespace)7 location(‘testEmp.txt‘) --指定数据文件8 );Table created
4、查询外部表:
SQL> select * from testExtEmp;EMPNO ENAME JOB----- ---------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMAN7566 JONES MANAGER7654 MARTIN SALESMAN7698 BLAKE MANAGER7782 CLARK MANAGER7788 SCOTT ANALYST7839 KING PRESIDENT7844 TURNER SALESMAN7876 ADAMS CLERK7900 JAMES CLERK7902 FORD ANALYST7934 MILLER CLERK14 rows selected
5、说明
1) 外部表是指不在数据库中的表,如操作系统上的一个按一定格式分割的文本文件或者其他类型的表,即数据在数据库的外部组织,是操作系统文件。
2) 这个外部表对于Oracle数据库来说,就好像是一张视图, 在数据库中可以像视图一样进行查询等操作。
3) 这个视图允许用户在外部数据上运行任何的SQL语句,而不需要先将外部表中的数据装载进数据库中。
4) 需要注意是,外部数据表都是只读的,不能够更改。
5) 操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。
6) 不可以在上面运行任何 DML 操作,不可以创建索引。
7) 可以查询操作和连接,可以并行操作。
外部表1(简单测试)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。