Oracle 的一些学习心得

已经是培训的第四天,感觉时间过得很快,明天就是最后一天。这也表示我对培训的总体感觉不错。看来过一段时间就离开日常的工作来这么一个星期的脱产充电还是很必要的。

虽然自己在7年前就开始接触 Oracle (那是好像是Oracle 7)了,而且日常的工作也是与这个数据库程序打交道。但是繁忙的日杂已经将自己磨得没有心思去研究它每次版本更新的新功能了。所以这次的培训,不但让自己再一次系统地回顾Oracle数据库中的各种功能,也对新版本10g(不过,Oracle现在是11g了,又得跟进,嗨)中一些新功能有了一些新的认识。


首先要说的就是从9i开始有的External Table类型。主要是自己工作中要接触到一些外部数据,象另一个系统传过来的文本文件.txt格式航班信息。以前都是用自己写的SQL loader脚本将他们加载到一个临时table里,然后再做其他数据库操作。有了External Table就不一样了,虽然底层继续使用loader的技术,但可以通过External Table直接在Oracle使用文本文件的数据。虽然每次在使用 select 命令调用这个外部table时,Oracle每次都使用加载命令将文本文件的数据调入内存,但总体来说比自己用加载脚本强多了。

不过要注意

1)在表明文本文件或其他外部数据文件的数据分隔符时一定要小心,要不虽然你的生成外部table命令可以通过,但在调用外部table的数据时会带来意想不到的错误或直接是系统长时间没反应。昨天在练习时,自己在分隔符逗号前后不小心加了个空格如 ‘ , ‘,而指向的外部文件里的逗号是直接接着数据的,所以每次我在调看external table时系统都报错。我抓破了头皮才将问题的罪魁祸首-逗号前的空格找出来。切记!

2)每次在external table上使用 select 命令时,loader都会在数据服务器上生成一个log日志文件并将以后的log附加上去。如果你调用external table很频繁并关心服务器空间的话,可以建议时不时删除那个log文件(可以在传输外部文件里的脚本加上删除文件命令的)。一般那个文件名就是你的external table的table名字加上系统时间,和它的文件后缀名就是.log。不要删除错了。另外,那个出错的日志文件后缀名是.bad,可以留下来看看怎么回事。

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.