hidd_migration.sql 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. -- ============================================================================
  2. -- 隐患管理模块 - 数据迁移工具SQL
  3. -- 生成时间: 2026-06-12
  4. -- 说明: 用于从Oracle迁移数据到瀚高(PostgreSQL)
  5. -- ============================================================================
  6. -- ============================================================================
  7. -- 一、数据迁移前检查
  8. -- ============================================================================
  9. -- 检查表是否存在
  10. SELECT
  11. table_name,
  12. CASE
  13. WHEN EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'slaj' AND table_name = t.table_name)
  14. THEN '已存在'
  15. ELSE '不存在'
  16. END AS status
  17. FROM (VALUES
  18. ('OBJ_HIDD'),
  19. ('BIS_HIDD_REC_REP'),
  20. ('BIS_HIDD_RECT_IMPL'),
  21. ('BIS_HIDD_RECT_ACCE'),
  22. ('BIS_HIDD_RECT_PROG'),
  23. ('BIS_HIDD_INVE'),
  24. ('BIS_HIDD_MAJ_VERI'),
  25. ('BIS_MAJ_HIDD_SUP'),
  26. ('BIS_HIDD_ASSESS'),
  27. ('BIS_HIDD_ASSESS_REC'),
  28. ('BIS_HIDD_ZERO_ASSESS'),
  29. ('BIS_HIDD_ZERO_ASSESS_REC'),
  30. ('BIS_ORG_MON_REP_PERI'),
  31. ('BIS_ORG_MON_REP_REVO'),
  32. ('ATT_ORG_BASE'),
  33. ('ATT_ORG_EXT'),
  34. ('OBJ_ENG'),
  35. ('BIS_SINS_SCHE'),
  36. ('ATT_MED_BASE'),
  37. ('REL_BIS_MED'),
  38. ('T_BUSI_HIDD_COUNT'),
  39. ('T_BUSI_HIDD_COUNT_MON'),
  40. ('T_BUSI_HIDD_EVA'),
  41. ('T_BUSI_HIDD_THR_EVA'),
  42. ('T_DICT_HIDD_ENG')
  43. ) AS t(table_name)
  44. ORDER BY table_name;
  45. -- ============================================================================
  46. -- 二、表数据量统计
  47. -- ============================================================================
  48. -- 统计各表数据量
  49. SELECT
  50. schemaname,
  51. relname AS table_name,
  52. n_live_tup AS row_count
  53. FROM pg_stat_user_tables
  54. WHERE schemaname = 'slaj'
  55. AND relname IN (
  56. 'OBJ_HIDD', 'BIS_HIDD_REC_REP', 'BIS_HIDD_RECT_IMPL',
  57. 'BIS_HIDD_RECT_ACCE', 'BIS_HIDD_RECT_PROG', 'BIS_HIDD_INVE',
  58. 'BIS_HIDD_MAJ_VERI', 'BIS_MAJ_HIDD_SUP', 'BIS_HIDD_ASSESS',
  59. 'BIS_HIDD_ASSESS_REC', 'BIS_HIDD_ZERO_ASSESS', 'BIS_HIDD_ZERO_ASSESS_REC',
  60. 'BIS_ORG_MON_REP_PERI', 'BIS_ORG_MON_REP_REVO', 'ATT_ORG_BASE',
  61. 'ATT_ORG_EXT', 'OBJ_ENG', 'BIS_SINS_SCHE', 'ATT_MED_BASE',
  62. 'REL_BIS_MED', 'T_BUSI_HIDD_COUNT', 'T_BUSI_HIDD_COUNT_MON',
  63. 'T_BUSI_HIDD_EVA', 'T_BUSI_HIDD_THR_EVA', 'T_DICT_HIDD_ENG'
  64. )
  65. ORDER BY n_live_tup DESC;
  66. -- ============================================================================
  67. -- 三、数据迁移脚本(使用DBeaver或Navicat的数据传输功能)
  68. -- ============================================================================
  69. -- 迁移顺序建议(先迁移基础表,再迁移业务表):
  70. --
  71. -- 第1步: 基础表(无外键依赖)
  72. -- 1. ATT_ORG_BASE - 机构基础信息
  73. -- 2. ATT_ORG_EXT - 机构扩展信息
  74. -- 3. OBJ_ENG - 工程信息
  75. -- 4. ATT_MED_BASE - 多媒体基础表
  76. -- 5. T_DICT_HIDD_ENG - 隐患工程字典
  77. --
  78. -- 第2步: 业务主表
  79. -- 6. OBJ_HIDD - 隐患主表
  80. -- 7. BIS_SINS_SCHE - 安全检查计划
  81. --
  82. -- 第3步: 业务子表
  83. -- 8. BIS_HIDD_REC_REP - 隐患记录上报
  84. -- 9. BIS_HIDD_RECT_IMPL - 隐患整改实施
  85. -- 10. BIS_HIDD_RECT_ACCE - 隐患整改验收
  86. -- 11. BIS_HIDD_RECT_PROG - 隐患整改进度
  87. -- 12. BIS_HIDD_INVE - 隐患调查评估
  88. -- 13. BIS_HIDD_MAJ_VERI - 重大隐患核实
  89. -- 14. BIS_MAJ_HIDD_SUP - 重大隐患挂牌督办
  90. --
  91. -- 第4步: 考核评估表
  92. -- 15. BIS_HIDD_ASSESS - 隐患考核
  93. -- 16. BIS_HIDD_ASSESS_REC - 隐患考核记录
  94. -- 17. BIS_HIDD_ZERO_ASSESS - 隐患零报告考核
  95. -- 18. BIS_HIDD_ZERO_ASSESS_REC - 隐患零报告考核记录
  96. --
  97. -- 第5步: 月报相关表
  98. -- 19. BIS_ORG_MON_REP_PERI - 月报期间表
  99. -- 20. BIS_ORG_MON_REP_REVO - 月报修订表
  100. --
  101. -- 第6步: 关联表
  102. -- 21. REL_BIS_MED - 多媒体关联表
  103. --
  104. -- 第7步: 统计汇总表
  105. -- 22. T_BUSI_HIDD_COUNT - 隐患统计表
  106. -- 23. T_BUSI_HIDD_COUNT_MON - 隐患月度统计
  107. -- 24. T_BUSI_HIDD_EVA - 隐患评估统计
  108. -- 25. T_BUSI_HIDD_THR_EVA - 隐患威胁评估
  109. -- ============================================================================
  110. -- 四、DBeaver数据传输配置参考
  111. -- ============================================================================
  112. -- 源数据库配置(Oracle):
  113. -- 主机: 39.98.38.2
  114. -- 端口: 1521
  115. -- 数据库: GW_BASIC
  116. -- 用户名: GW_BASIC
  117. -- 密码: Gw./16001
  118. -- Schema: SLAJ
  119. --
  120. -- 目标数据库配置(Highgo):
  121. -- 主机: 192.168.0.149
  122. -- 端口: 5866
  123. -- 数据库: highgo
  124. -- 用户名: highgo
  125. -- 密码: Gw@141516
  126. -- Schema: slaj
  127. -- ============================================================================
  128. -- 五、数据验证SQL
  129. -- ============================================================================
  130. -- 验证迁移结果 - 比较源和目标表的行数
  131. -- 需要在Oracle中执行以下SQL获取行数:
  132. /*
  133. SELECT
  134. table_name,
  135. num_rows
  136. FROM user_tables
  137. WHERE table_name IN (
  138. 'OBJ_HIDD', 'BIS_HIDD_REC_REP', 'BIS_HIDD_RECT_IMPL',
  139. 'BIS_HIDD_RECT_ACCE', 'BIS_HIDD_RECT_PROG', 'BIS_HIDD_INVE',
  140. 'BIS_HIDD_MAJ_VERI', 'BIS_MAJ_HIDD_SUP', 'BIS_HIDD_ASSESS',
  141. 'BIS_HIDD_ASSESS_REC', 'BIS_HIDD_ZERO_ASSESS', 'BIS_HIDD_ZERO_ASSESS_REC',
  142. 'BIS_ORG_MON_REP_PERI', 'BIS_ORG_MON_REP_REVO', 'ATT_ORG_BASE',
  143. 'ATT_ORG_EXT', 'OBJ_ENG', 'BIS_SINS_SCHE', 'ATT_MED_BASE',
  144. 'REL_BIS_MED', 'T_BUSI_HIDD_COUNT', 'T_BUSI_HIDD_COUNT_MON',
  145. 'T_BUSI_HIDD_EVA', 'T_BUSI_HIDD_THR_EVA', 'T_DICT_HIDD_ENG'
  146. )
  147. ORDER BY table_name;
  148. */
  149. -- 在Highgo中执行以下SQL获取行数:
  150. SELECT
  151. relname AS table_name,
  152. n_live_tup AS row_count
  153. FROM pg_stat_user_tables
  154. WHERE schemaname = 'slaj'
  155. AND relname IN (
  156. 'OBJ_HIDD', 'BIS_HIDD_REC_REP', 'BIS_HIDD_RECT_IMPL',
  157. 'BIS_HIDD_RECT_ACCE', 'BIS_HIDD_RECT_PROG', 'BIS_HIDD_INVE',
  158. 'BIS_HIDD_MAJ_VERI', 'BIS_MAJ_HIDD_SUP', 'BIS_HIDD_ASSESS',
  159. 'BIS_HIDD_ASSESS_REC', 'BIS_HIDD_ZERO_ASSESS', 'BIS_HIDD_ZERO_ASSESS_REC',
  160. 'BIS_ORG_MON_REP_PERI', 'BIS_ORG_MON_REP_REVO', 'ATT_ORG_BASE',
  161. 'ATT_ORG_EXT', 'OBJ_ENG', 'BIS_SINS_SCHE', 'ATT_MED_BASE',
  162. 'REL_BIS_MED', 'T_BUSI_HIDD_COUNT', 'T_BUSI_HIDD_COUNT_MON',
  163. 'T_BUSI_HIDD_EVA', 'T_BUSI_HIDD_THR_EVA', 'T_DICT_HIDD_ENG'
  164. )
  165. ORDER BY relname;
  166. -- ============================================================================
  167. -- 六、迁移后处理
  168. -- ============================================================================
  169. -- 1. 更新序列值(如果有自增ID的表)
  170. -- 对于使用NUMBER类型作为主键的表,需要更新序列
  171. -- BIS_HIDD_ASSESS 序列
  172. SELECT setval('SEQ_BIS_HIDD_ASSESS', COALESCE((SELECT MAX(ID) FROM BIS_HIDD_ASSESS), 1));
  173. -- BIS_HIDD_ASSESS_REC 序列
  174. SELECT setval('SEQ_BIS_HIDD_ASSESS_REC', COALESCE((SELECT MAX(ID) FROM BIS_HIDD_ASSESS_REC), 1));
  175. -- BIS_HIDD_ZERO_ASSESS 序列
  176. SELECT setval('SEQ_BIS_HIDD_ZERO_ASSESS', COALESCE((SELECT MAX(ID) FROM BIS_HIDD_ZERO_ASSESS), 1));
  177. -- BIS_HIDD_ZERO_ASSESS_REC 序列
  178. SELECT setval('SEQ_BIS_HIDD_ZERO_ASSESS_REC', COALESCE((SELECT MAX(ID) FROM BIS_HIDD_ZERO_ASSESS_REC), 1));
  179. -- T_BUSI_HIDD_COUNT 序列
  180. SELECT setval('SEQ_T_BUSI_HIDD_COUNT', COALESCE((SELECT MAX(ID) FROM T_BUSI_HIDD_COUNT), 1));
  181. -- T_BUSI_HIDD_COUNT_MON 序列
  182. SELECT setval('SEQ_T_BUSI_HIDD_COUNT_MON', COALESCE((SELECT MAX(ID) FROM T_BUSI_HIDD_COUNT_MON), 1));
  183. -- T_BUSI_HIDD_EVA 序列
  184. SELECT setval('SEQ_T_BUSI_HIDD_EVA', COALESCE((SELECT MAX(ID) FROM T_BUSI_HIDD_EVA), 1));
  185. -- T_BUSI_HIDD_THR_EVA 序列
  186. SELECT setval('SEQ_T_BUSI_HIDD_THR_EVA', COALESCE((SELECT MAX(ID) FROM T_BUSI_HIDD_THR_EVA), 1));
  187. -- T_DICT_HIDD_ENG 序列
  188. SELECT setval('SEQ_T_DICT_HIDD_ENG', COALESCE((SELECT MAX(ID) FROM T_DICT_HIDD_ENG), 1));
  189. -- 2. 重新统计表信息
  190. ANALYZE OBJ_HIDD;
  191. ANALYZE BIS_HIDD_REC_REP;
  192. ANALYZE BIS_HIDD_RECT_IMPL;
  193. ANALYZE BIS_HIDD_RECT_ACCE;
  194. ANALYZE BIS_HIDD_RECT_PROG;
  195. ANALYZE BIS_HIDD_INVE;
  196. ANALYZE BIS_HIDD_MAJ_VERI;
  197. ANALYZE BIS_MAJ_HIDD_SUP;
  198. ANALYZE BIS_HIDD_ASSESS;
  199. ANALYZE BIS_HIDD_ASSESS_REC;
  200. ANALYZE BIS_HIDD_ZERO_ASSESS;
  201. ANALYZE BIS_HIDD_ZERO_ASSESS_REC;
  202. ANALYZE BIS_ORG_MON_REP_PERI;
  203. ANALYZE BIS_ORG_MON_REP_REVO;
  204. ANALYZE ATT_ORG_BASE;
  205. ANALYZE ATT_ORG_EXT;
  206. ANALYZE OBJ_ENG;
  207. ANALYZE BIS_SINS_SCHE;
  208. ANALYZE ATT_MED_BASE;
  209. ANALYZE REL_BIS_MED;
  210. ANALYZE T_BUSI_HIDD_COUNT;
  211. ANALYZE T_BUSI_HIDD_COUNT_MON;
  212. ANALYZE T_BUSI_HIDD_EVA;
  213. ANALYZE T_BUSI_HIDD_THR_EVA;
  214. ANALYZE T_DICT_HIDD_ENG;
  215. -- ============================================================================
  216. -- 完成
  217. -- ============================================================================