使用Oracle外部表的五个限制.doc

使用Oracle外部表的五个限制.doc

ID:58370339

大小:27.00 KB

页数:6页

时间:2020-04-30

使用Oracle外部表的五个限制.doc_第1页
使用Oracle外部表的五个限制.doc_第2页
使用Oracle外部表的五个限制.doc_第3页
使用Oracle外部表的五个限制.doc_第4页
使用Oracle外部表的五个限制.doc_第5页
资源描述:

《使用Oracle外部表的五个限制.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、使用Oracle外部表的五个限制使用Oracle外部表的五个限制使用Oracle外部表的五个限制使用Oracle外部表的五个限制  Oracle外部表就好像是一张视图,在数据库中可以像试图一样进行查询等操作。这个试图允许用户在外部数据上运行任何的SQL语句,而不需要先将外部表中的数据装载进数据库中。  外部表是指不在数据库中的表,如操作系统上的一个按一定格式分割的文本文件或者其他类型的表。这个外部表对于Oracle数据库来说,就好像是一张视图,在数据库中可以像试图一样进行查询等操作。这个试图允许用户在外部

2、数据上运行任何的SQL语句,而不需要先将外部表中的数据装载进数据库中。不过需要注意是,外部数据表都是只读的,不能够更改。不过在使用外部表时仍然有不少的限制。  限制一:需要先建立目录对象。  在使用外部数据表的时候,需要先建立目录对象。也就是说,要想Oracle数据库系统访问操作系统文件,就必须在数据库中建立指向这个操作系统文件的目录对象,然后通过这个目录对象访问相应的操作系统文件,即用目录对象存储操作文件的保存位置。不过需要注意,这个目录对象普通用户是无权创建的。一般情况下只有特权用户或者数据库管理员角

3、色才可以创建目录对象。如果允许其他用户也可以创建目录对象的话,就需要授权给其他用户。  其实这个目录对象就是操作系统中文件或者表格的存储位置。不过在建立对象的时候,需要小心,Oracle数据库系统不会去确认这个目录是否真的存在。如果在输入这个目录对象的时候,不小心把路径写错了,那可能这个外部表仍然可以正常建立,但是却无法查询到数据。由于建立目录对象时,缺乏这种自我检查的机制,为此在将路径赋予给这个目录对象时,需要特别的注意。另外需要注意的是路径的大小写。在Windows操作系统中,其路径是不区分大小写的。

4、而在Linux操作系统,这个路径需要区分大小写。故在不同的操作系统中,建立目录对象时需要注意这个大小写的差异。最好数据库管理员可以养成一个习惯,无论在什么操作系统中,都采用小写的目录名与文件名。那么在不同的操作系统中,就不用受到这个大小写的困扰了。最后需要注意的是,目录对象名必须唯一。如果目录对象名字有重复的话,系统会提示错误信息:“名称已有现有对象引用”,而不会自动覆盖原有的对象名设置。  虽然这个对象名设置比较简单,但是其是数据库寻找操作系统上文件的唯一途径。所以这个目录对象的创建必须确保准确。否则的

5、话,外部表就可能无法正常使用。  限制二:对于操作系统文件的限制。  其实外部表简单的说,就是跟操作系统上固定格式的文件或者表格的一个连接。为了Oracle数据库系统能够正确链接外部表,对于外部表的格式就提出了比较严格的要求。如果不符合这些要求的话,数据库系统就无法正确读取外部表中的数据。如对于分隔符有比较严格的要求。虽然在外部文件或者表格中,可以使用多种分隔符,如英文状态下的逗号或者分号等等。但是有一个限制,即在同一个操作系统文件中只能够使用一个分割符号,要么逗号或者分号等等。因为在建立外部表时,必须指

6、定操作系统文件所使用的分隔符号。如果有多种分隔符号的话,数据库系统将无法识别。  另外在外部表格中,不能够带有标题信息。如现在有一张表格,以逗号分隔。而在其第一列数据中有各个列的标题信息。而数据库系统在连接这个表的时候,会将这些标题信息当作普通的纪录来对待。即会将这些信息也显示在外部表中。为此如果这个标题信息与外部表的字段类型不一致(如字段内容是number数据类型,而标题信息则是字符型数据,则在查询时就会出错)。如果数据类型恰巧一致的话,这个标题信息Oracle数据库也会当作普通记录来对待。如在建立外部

7、表的时候,最好确认一下操作系统文件中是否包含标题信息。如果有的话,需要删除。否则的话,可能会出错。  最后需要说明的是,当Oracle数据库系统访问这个操作系统文件的时候,会在这个文件所在的目录自动创建一个日志文件。无论最后是否访问成功,这个日志文件都会如期建立。查看这个日志文件,可以了解数据库访问外部表的频率、是否成功访问等等。  限制三:在建立临时表时的限制。  在建立临时表时,也会有不少的限制。如表中字段的名称有一些特殊字符的话,那么这个表列的名称必须使用英文状态的下的双引号连接起来。如采用”stu

8、dentno#”。遇到列名字中有特殊符号时,如果不采用双引号括起来,虽然临时表可以正常创建,但是在采用的时候会出现错误,无法正常查询数据。如数据库系统可能会提醒:“数据库插件错误”等信息。为此最好在创建临时表时不要在列名中使用一些特殊的字符。其实不光光是建立临时表有这种限制,建立其他标或者试图都有类似的限制。  其次,这个外部表毕竟与内部表不同。在创建外部表的时候,其实在数据库中跟本没有创建表。也就是说,不会为外部表分配任何的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。