如何实现Oracle数据向低版本或SQL server的采集与转
近年来,随着被审计单位对信息化重视程度的不断提高,对信息系统的投入也越来越大,后台数据库不断升级更新,而审计人员的工具往往低于被审计单位的版本。比如;审计人员经常碰到被审计单位使用oracle11g数据库,而审计人员只有oracle10g,甚至只有oracle9i,这就给审计人员的数据采集与转换带来困难,笔者在审计过程中经过不断摸索、尝试、反复实践,探索出数据采集与转换方式方法,供广大审计同行参考。
一、oracle高版本向低版本的采集与转换
Oracle数据从高版本到低版本的采集转换,若两个版本相差较大,如oracle11g到oracle9i实现较为困难,最好的办法是进行软件升级;若是相邻版本,如被审计单位是oracle11g而审计人员的是oracle10g,主要有以下两种解决办法:
一是通过oracle10g连接被审计单位的oracle11g的数据库,利用oracle10g的exp工具,导出oracle11g中需要导出的数据,然后通过oracle10g的imp工具导入到审计人员的oracle10g数据库中。
二是通过被审计单位oracle11g的exp工具导出文件,直接通过oralce 10g的imp工具导入到oracle10g中,这种方法容易出错,不容易实现,且容易造成数据丢失,故不作推荐。
第二步:数据的转换
利用oracle10g的imp工具把njyszx2010.dmp导入到审计人员的oracle10g数据库中。先以sysdba 身份登录审计建立的oracle数据库,然后进行以下操作:
1. 建立预算执行的表空间和相应的数据文件。注意:数据文件的大小建议根据被审计单位导出的dmp文件大小的4倍建立,以防被审计单位在导出数据时进行了压缩,恢复时由于空间不够而导致恢复不成功或者数据丢失,具体执行语句如下:
SQL> CREATE TABLESPACE YSZX DATAFILE YSZX SIZE 15000 M REUSE AUTOEXTEND ON NEXT 100 M MAXSIZE UNLIMITED;
2. 建立以“YSZX”为名的用户,数据库密码为123,缺省表空间为步骤(1)所建立的“YSZX”的表空间,具体执行语句如下:
SQL> CREATE USER "YSZX" PROFILE "DEFAULT" IDENTIFIED BY "123" DEFAULT TABLESPACE "YSZX" ACCOUNT UNLOCK;
3. 分别给YSZX用户授予访问、连接等权限,具体执行语句如下:
SQL> GRANT UNLIMITED TABLESPACE TO "YSZX";
SQL> GRANT "CONNECT","RESOURCE","DBA" TO "YSZX";
4. 在dos模式,把财政部门提供的dmp数据导入到审计oracle数据库YSZX用户下,同时建议被审计单位在导出数据时、审计人员在恢复数据时,都要生成相应的日志文件,以便于核对审计人员恢复的数据与财政部门导出的数据是否一致,有无产生数据丢失,具体导入语句如下:
imp YSZX/123 full=yes file=H:
jyszx2010.dmp COMMIT=Y IGNORE=Y log=H:\YSZX.TXT
5.通过odbc建立oracle 数据源:
(1)选择oracle 10g数据源驱动:
(2)配置oracle odbc 驱动
(3)点击Test Connection,进行数据库连接测试:
6.通过SQL Server 2000 的DTS工具导入到SQL Sever中:
首先选择oracle数据源(见第二步建立),然后按正常的SQL server数据导入,选择源表和目的sql server数据库即可。
(来源于石门县审计局)