在审计实践中,审计人员经常遇到被审计单位使用oracle数据库的情况,由于多数审计人员对oracle数据库不熟悉,而对SQL Server数据库比较熟悉也比较习惯,因此如何将oracle数据采集到SQL Server数据库成为审计人员面临的难题。笔者结合实际经验进行总结,供广大审计同行参考。 将数据从oracle采集到SQL Server时,主要方法是先将oracle的导出数据dmp文件,导入到审计人员建立的oracle数据库中,然后再通过SQL Server 2000的DTS数据采集转换工具进行转换即可。在实际工作中经常遇到被审计单位与审计人员的oracle版本不一致的情况:一是审计人员的版本高于或等于被审计单位的版本,因oracle向下兼容,这种情况导入一般不存在问题;二是审计人员的版本低于被审计单位的版本,这种情况如果版本级别相差较大,实现较为困难,故不推荐。若为相邻版本,例如被审计单位是oracle11g而审计人员的是oracle10g,主要有以下两种解决办法: 一是通过oracle10g连接被审计单位的oracle11g的数据库,利用oracle10g的exp工具,导出oracle11g中需要导出的数据,然后通过oracle10g的imp工具导入到审计人员的oracle10g数据库中。 二是通过被审计单位oracle11g的exp工具导出文件,直接通过orslce10g的imp工具导入到oracle10g中,这种方法不容易实现,且容易造成数据丢失,故不作推荐。 下面笔者以南京市审计局在同级审时,将预算执行系统(oracle)数据采集到SQL Server 2000为例,介绍其具体方法步骤。 第一步:将oracle 11g的dmp数据文件导入到审计oracle数据库。首先以sysdba身份登录审计建立的oracle数据库,然后进行以下操作: 1.CREATE TABLESPACE YSZX DATAFILE 'YSZX' SIZE 15000 M REUSE AUTOEXTEND ON NEXT 100 M MAXSIZE UNLIMITED;//说明:建立预算执行的表空间和相应的数据文件。注意:数据文件的大小建议根据被审计单位导出的dmp文件大小的4倍建立,以防由于被审计单位在导出数据时进行了压缩,恢复时由于空间不够而导致恢复不成功或者数据丢失。 2.CREATE USER "YSZX" PROFILE "DEFAULT" IDENTIFIED BY "123" DEFAULT TABLESPACE "YSZX" ACCOUNT UNLOCK;//说明:建立以“YSZX”为名的用户,数据库密码为123,缺省表空间为步骤(1)所建立的“YSZX”的表空间。 3.GRANT UNLIMITED TABLESPACE TO"YSZX"; GRANT "CONNECT","RESOURCE","DBA" TO "YSZX";//说明:分别给YSZX用户授予访问、连接等权限。 4.imp YSZX/123 full file=H:\njyszx2010.dmp COMMIT=Y IGNORE=Y log=H:\YSZX.TXT//说明:在dos模式下键入,把财政部门提供的dmp数据导入到审计oracle数据库YSZX用户下,同时建议被审计单位在导出数据时、审计人员在恢复数据时,都要生成相应的日志文件,以便核对审计人员恢复的数据与财政部门导出的数据是否一致,有无产生数据丢失。 第二步:通过odbc建立oracle数据源,从oracle导入审计人员的SQL Sever数据库。 1.选择oracle 10g数据源驱动。 2.配置oracle odbc驱动。 3.点击Test Connection,进行数据库连接测试。 第三步:通过SQL Server2000的DTS工具导入到SQL Sever中: 首先选择oracle数据源(见第二步建立) 然后按正常的SQL Server数据导入,选择源表和目的SQL Server数据库即可。