综合信息平台 Oracle 数据实施

 
          我们的综合信息平台在集成其他系统的时候,需要在数据库的基础表中初始化一些数据,但是这些数据需要遵守综合信息平台的一些规则。

        以前,这样数据就不能直接导入,需要进行整理,在用户那里调整主键ID。主要是将其他系统的数据导入到Excel中,然后调整数据,拷贝到综合平台相应的数据表中。当数据量不是很大时,这样做还是可以的,但是当数据量很大时,这种方法就相对来说效率太差了。

 

        最近,我同样遇到了这个问题,为了减少实施人员对数据的操作,我想使用脚本的方式,来解决这一问题。

 

        首先,我将要导入到综合信息平台的数据先导入到临时表Tmp_SystemModule表中

  1. prompt PL/SQL Developer import file
  2. prompt Created on 2008年10月23日 by HopeStar
  3. set feedback off
  4. set define off
  5. prompt Creating TMP_SYSTEMMODULE...
  6. create table TMP_SYSTEMMODULE
  7. (
  8.   F_MODULEID         NUMBER(18) not null,
  9.   F_MODULECODE       VARCHAR2(50) not null,
  10.   F_MODULENAME       VARCHAR2(50) not null,
  11.   F_ISDEFAULT        NUMBER(18) not null,
  12.   F_PARENTMODULEID   NUMBER(18) default 0,
  13.   F_NAVIGATEURL      VARCHAR2(200),
  14.   F_TARGET           VARCHAR2(20),
  15.   F_DEFAULTIMAGEURL  VARCHAR2(200),
  16.   F_SELECTEDIMAGEURL VARCHAR2(200),
  17.   F_HOVERIMAGEURL    VARCHAR2(200),
  18.   F_TOOLTIP          VARCHAR2(50) default ' ',
  19.   F_REMARK           VARCHAR2(200) default ' ',
  20.   F_ORDER            NUMBER(18) default 0,
  21.   F_MODULEFLAG       NUMBER(18) default 0,
  22.   F_MODULEKEY        VARCHAR2(50) default ' ' not null
  23. );
  24. commit;
  25. prompt Loading TMP_SYSTEMMODULE...
  26. insert into TMP_SYSTEMMODULE (F_MODULEID, F_MODULECODE, F_MODULENAME, F_ISDEFAULT, F_PARENTMODULEID, F_NAVIGATEURL, F_TARGET, F_DEFAULTIMAGEURL, F_SELECTEDIMAGEURL, F_HOVERIMAGEURL, F_TOOLTIP, F_REMARK, F_ORDER, F_MODULEFLAG, F_MODULEKEY)
  27. values (91, '1002', '设备管理', 0, 88, 'StandardScout/StandardForPlace/StandardBaseDevice/StandardDeviceManage.aspx', 'main', null, null, null, '设备管理', '设备管理', 91, 0, ' ');
  28. /*省略了添加的数据*/
  29. commit;
  30. prompt 1009 records loaded
  31. set feedback on
  32. set define on
  33. prompt Done.

        其次,我要设计导入脚本,使临时表中数据符合综合信息平台对数据的要求

  1. variable SystemCode varchar2(200);
  2. variable CategoryID number;
  3. variable MinRange number;
  4. variable MaxRange number;
  5. accept Code prompt '请输入系统编码:';
  6. accept Min prompt '请输入系统所在范围的最小值:' number;
  7. accept Max prompt '请输入系统所在范围的最大值:' number;
  8. prompt
  9. prompt ========================================
  10. prompt 按<Enter>键继续
  11. prompt
  12. prompt ========================================
  13. prompt 添加系统
  14. prompt
  15. execute :SystemCode :'&Code';
  16. execute :MinRange := &Min;
  17. execute :MaxRange := &Max;
  18. insert into t_PortalSystem 
  19. (f_SystemCode,f_ProjectName,f_SystemIP,f_AuthorityMethod,f_Port,f_SystemName,
  20. f_OuterCode,f_OverLoadFlag,f_Manufacturer)
  21. values
  22. (:SystemCode,:SystemCode,'192.168.0.24','SSO','80','测试变电站','NONE',0,'无');
  23. prompt
  24. prompt =========================================
  25. prompt 添加系统范围
  26. prompt
  27. insert into t_SystemRange
  28. (f_SystemCode,f_MinRange,f_MaxRange,f_IsEnabled)
  29. values
  30. (:SystemCode,:MinRange,:MaxRange,1);
  31. prompt
  32. prompt ========================================
  33. prompt 添加分类
  34. prompt
  35. execute :CategoryID :PKG_SystemModule.uf_CategorySequencesGet(:SystemCode);
  36. insert into t_PortalCategory
  37. (f_SystemCode,f_CategoryID,f_CategoryName)
  38. values
  39. (:SystemCode,:CategoryID,'变电站应用');
  40. commit;
  41. prompt
  42. prompt ========================================
  43. prompt 添加模块
  44. prompt
  45. INSERT INTO t_PortalModule
  46. (f_Categoryid,f_Moduleid,f_Modulename,f_Modulekey,f_Moduleurl,f_Moduletype,
  47. f_Displaytype,f_Description,f_Iconurl,f_IsTab,f_ValidateFlag,f_Order)
  48. select
  49. :CategoryID,PKG_SystemModule.uf_ModuleSequencesGet(:SystemCode),f_ModuleName,
  50. :SystemCode,f_NavigaterUrl,1,f_NavigateUrl,' ',0,0,f_Order
  51. from tmp_SystemModule;
  52. commit;
  53. prompt
  54. prompt ========================================
  55. prompt 删除临时表
  56. prompt
  57. drop table TMP_SYSTEMMODULE;
  58. commit;
  59. prompt ========================================
  60. prompt 同步完成

这样,实施人员只是设置了一些基础参数,就可以将大量数据导入到数据库中了,提高了数据的安全性。

 

        总结:1、在实施过程中,应该尽量减少对数据库的操作。当必须要对数据操作时,程序应该尽可能多的提供操作界面

                    2、写实施脚本时,要多做些测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值