一个快速生成ORACLE建表语句的小技巧
段超 何瑗(审计署驻南京特派办)
【发布时间:2011年10月13日】
字号:【大】 【中】 【小】

 
一、 引言
随着计算机信息系统的普及,计算机技术在审计工作中的作用越来越显得重要。审计时,我们常常需要被审计单位提供各种各样的数据,被审计单位(如金融机构)提供电子数据往往具有两种类型,一种是具体业务数据的TXT文件,这类文件往往只包含具体数据值而没有对应的字段名称;另一种文件是对各个具体业务数据文件的说明,即通常所说的数据字典,一般为EXCEL或TEXT格式。在这种情况下,要想利用被审计单位提供的数据进行审计分析,首先必须将TXT文件格式存放的数据采集到相关数据库中。以ORACLE数据库为例,可以先根据数据字典说明,生成ORACLE建表语句,创建好相关表后,方可以将各个具体业务数据文件导入到数据库中,开始数据分析。由于被审计单位提供的数据表往往是数据量大、表字段多。如果依靠人工撰写相关建表语句,不仅耗时耗力,而且容易出现错误。
本文主要描述审计组对某农村信用联社延伸审计时的数据采集实现方法,介绍一快速生成ORACLE建表语句的小技巧。
二、 ORACLE建表语句说明
创建数据表的脚本可以简单的表达为:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
);
其中,数据类型包括字符型、数值型、日期型、浮点型、货币性、逻辑性、备注型等,审计工作中常用到的数据类型一般是前3种,其对应的oracle语句分别为VARCHAR2(n BYTE)、NUMBER(字段长度,小数位数)和DATE。
三、 案例实现
在本例中,被审计单位为某信用联社,其提供的相关数据如图1所示,其中,前5个文本文件为具体业务数据,该类文件只包含具体的数据值,而没有具体数据对应的字段名称。“数据字典及系统表结构”是对前5个文本文件数据结构的说明。以“消费贷款主文件momna”数据文件为例,其在在数据字典中,对“消费贷款主文件momna”的描述如图2所示:



 
根据数据字典的描述,数据表MOMNA共包含74个字段,字符型字段在字段属性中以“A”表示,数值型和日期型字段在字段属性中以“P”表示。
下面,我们将演示如何借助EXCEL作为中间工具来快速生成创建ORACLE数据表的语句。如果数据字典是TXT格式的,我们利用EXCEL的导入功能将文本文件导入为EXCEL格式即可。
首先我们在数据字典的中添加一名为“创建字段”的列,利用EXCEL的自动筛选功能将字段名一列为空的行筛选出来并删除。然后,筛选出字段属性为字符型的记录,对应每条记录在“创建字段”列中利用CONCATENATE函数生成我们需要的ORACLE字段生成语句,如图3,以第3行为例,在“创建字段”列F3单元格中输入公式:
=CONCATENATE(A3," ",CONCATENATE("VARCHAR2(",TRIM(B3)," BYTE),"))
EXCEL输出结果“MNSBNO VARCHAR2(10 BYTE)”,这就是我们在CREATE TABLE命令中用于创建MNSBNO字段的语句。其他字段直接利用EXCEL的的拖拽功能,即可自动填充其他行。


同样的道理,对于数值型的字段,我们筛选出对应的记录,如图4所示,以第16行为例,在“创建字段”列F16单元格中输入公式:
=CONCATENATE(A16," ",CONCATENATE("NUMBER(",TRIM(B16),",",TRIM(D16),"),"))
则EXCEL输出创建MNLLVL字段的语句为“MNLLVL NUMBER(15,2)”。


对于日期型的,如图5所示,以第21行为例,在在“创建字段”列F21单元格中输入公式:
=CONCATENATE(A21," ","DATE,")
则EXCEL输出创建MNLIDT字段的语句“MNLIDT DATE”。


依据此方法,可以设置所有数据类型的ORACLE字段创建语句,取消自动筛选,通过“复制”方式将MOMNA表中“创建字段”列生成的语句直接拷贝至记事本中,依据ORACLE建表语句框架,补充输入表名称即可实现目标。字段语句前加入“CREATE TABLE MOMNA(”,在字段语句后补上ORACLE建表语句结束标识“);”,则该ORACLE创建MOMNA数据表的语句生成完毕(如图6),其余表采用此类方法,即可逐一实现。

 
四、 小结
通过本文的案例可以看出,看似功能简单的EXCEL其实包含很多实用性很强的技巧,而利用好这些技巧的关键就是如何灵活运用EXCEL函数。本文实现的仅是一个简单利用EXCEL内置的CONCATENATE函数来快速生成了ORACLE建表语句的小技巧。另一方面说,EXCEL的主要功能是制表,而其精髓是则是函数。这对经常面对不同形式电子数据的审计人员,尤其是非计算机专业的审计人员,掌握好并能灵活运用好EXCEL函数将会为我们审计工作提供很大便利。(段超 何瑗)
【关闭】    【打印】