DataBase.SQL 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. -- db_comm.pc
  2. -- SEL_Center
  3. -- struct
  4. -- {
  5. -- char szID[MAX_FETCH_ROWS][SIZE_CENTER_ID+1]; /* 센터 ID */
  6. -- char szName[MAX_FETCH_ROWS][SIZE_CENTER_NAME+1]; /* 센터 NAME */
  7. -- char szCommIP[MAX_FETCH_ROWS][SIZE_CENTER_IP+1]; /* 통신 IP */
  8. -- int nCommPort[MAX_FETCH_ROWS]; /* 통신 포트 */
  9. -- char szUser[MAX_FETCH_ROWS][SIZE_CENTER_USER+1]; /* 사용자명 */
  10. -- char szPwd[MAX_FETCH_ROWS][SIZE_CENTER_PWD+1]; /* 사용자비밀번호 */
  11. -- int nHeartbeatCycle[MAX_FETCH_ROWS]; /* 허트비트 주기 */
  12. -- int nResTime[MAX_FETCH_ROWS]; /* 응답시간 */
  13. -- int nDatagramSize[MAX_FETCH_ROWS]; /* 데이터그램 크기 */
  14. -- } rec;
  15. /*
  16. ************************************************************************************************
  17. * 센터 테이블에서 서버 정보를 읽어온다.
  18. ************************************************************************************************
  19. */
  20. SELECT SUBSTR(centerid, 1, 10), SUBSTR(centerinfo, 1, 20),
  21. ipaddress, commport,
  22. datexuser, datexpasswd, heartbeatcycle, restime, datagramsize
  23. FROM CENTER
  24. WHERE centerflag = 'M'
  25. AND exeyn = 'Y'
  26. ORDER BY centerid;
  27. /*
  28. ************************************************************************************************
  29. * 센터 테이블에서 클라이언트 정보를 읽어온다.
  30. ************************************************************************************************
  31. */
  32. SELECT SUBSTR(centerid, 1, 10), SUBSTR(centerinfo, 1, 20),
  33. ipaddress, commport,
  34. datexuser, datexpasswd, heartbeatcycle, restime, datagramsize
  35. FROM CENTER
  36. WHERE centerflag = 'L'
  37. AND exeyn = 'Y'
  38. ORDER BY centerid;
  39. -- db_asnc.pc
  40. -- INS_RcvTraffic
  41. -- struct
  42. -- {
  43. -- char szRegDate[MAX_DB_INS_ROWS][SIZE_DATETIME+1];
  44. -- char szFromCenterId[MAX_DB_INS_ROWS][SIZE_CENTER_ID+1];
  45. -- char szLinkNumber[MAX_DB_INS_ROWS][SIZE_LINK_ID+1];
  46. -- char szToCenterId[MAX_DB_INS_ROWS][SIZE_CENTER_ID+1];
  47. -- int nSpeedRate[MAX_DB_INS_ROWS];
  48. -- int nTravelTimeQuantity[MAX_DB_INS_ROWS];
  49. -- int nDelayQuanity[MAX_DB_INS_ROWS];
  50. -- int nDensityRate[MAX_DB_INS_ROWS];
  51. -- } rec;
  52. INSERT INTO RCV_LINK_TRAFFIC(regdate,
  53. fromcenterid,
  54. linknumber,
  55. tocenterid,
  56. logdate,
  57. speedrate,
  58. traveltimequantity,
  59. delayquanity,
  60. densityrate
  61. )
  62. VALUES(TO_DATE(:rec.szRegDate, 'YYYYMMDDHH24MISS'),
  63. :rec.szFromCenterId,
  64. :rec.szLinkNumber,
  65. :rec.szToCenterId,
  66. SYSDATE,
  67. :rec.nSpeedRate,
  68. :rec.nTravelTimeQuantity,
  69. :rec.nDelayQuanity,
  70. :rec.nDensityRate
  71. );
  72. -- INS_RcvIncident
  73. -- struct
  74. -- {
  75. -- char szToCenterId[MAX_DB_ROWS_SMALL][SIZE_CENTER_ID+1];
  76. -- char szLinkNumber[MAX_DB_ROWS_SMALL][SIZE_LINK_ID+1];
  77. -- char szNodeNumber[MAX_DB_ROWS_SMALL][SIZE_NODE_ID+1];
  78. -- char szFromCenterId[MAX_DB_ROWS_SMALL][SIZE_CENTER_ID+1];
  79. -- char szContactOrganizationNameText[MAX_DB_ROWS_SMALL][128+1];
  80. -- int nDescriptionTypeIncidentCode[MAX_DB_ROWS_SMALL];
  81. -- char szDescriptionTypeIncidentOther[MAX_DB_ROWS_SMALL][256+1];
  82. -- int nIncidentVehiclesInvolvedCode[MAX_DB_ROWS_SMALL];
  83. -- char szIncidentVehiclesInvolvedOther[MAX_DB_ROWS_SMALL][256+1];
  84. -- int nIncidentStatusCode[MAX_DB_ROWS_SMALL];
  85. -- char szIncidentStatusOther[MAX_DB_ROWS_SMALL][256+1];
  86. -- int nUpdateTypeCode[MAX_DB_ROWS_SMALL];
  87. -- char szUpdateTypeOther[MAX_DB_ROWS_SMALL][256+1];
  88. -- } rec;
  89. INSERT INTO RCV_INCIDENT(tocenterid,
  90. link_linkidnumber,
  91. node_nodeidnumber,
  92. logdate,
  93. fromcenterid,
  94. contactorganizationnametext,
  95. descriptiontypeincidentcode,
  96. descriptiontypeincidentother,
  97. incidentvehiclesinvolvedcode,
  98. incidentvehiclesinvolvedother,
  99. incidentstatuscode,
  100. incidentstatusother,
  101. updatetypecode,
  102. updatetypeother,
  103. sendyn)
  104. VALUES(:rec.szToCenterId,
  105. :rec.szLinkNumber,
  106. :rec.szNodeNumber,
  107. SYSDATE,
  108. :rec.szFromCenterId,
  109. :rec.szContactOrganizationNameText,
  110. :rec.nDescriptionTypeIncidentCode,
  111. :rec.szDescriptionTypeIncidentOther,
  112. :rec.nIncidentVehiclesInvolvedCode,
  113. :rec.szIncidentVehiclesInvolvedOther,
  114. :rec.nIncidentStatusCode,
  115. :rec.szIncidentStatusOther,
  116. :rec.nUpdateTypeCode,
  117. :rec.szUpdateTypeOther,
  118. 'N');
  119. -- INS_RcvLog
  120. INSERT INTO RCV_LOG(logdate, infokind, tocenterid, dupkey, fromcenterid, datacnt)
  121. VALUES(SYSDATE, :pLog->szInfoKind, :pLog->szToCenterId, NVL(:pLog->szDupKey, 'DupKey'), :pLog->szFromCenterId, :pLog->DataCnt);
  122. -- INS_CenterReceive
  123. INSERT INTO CENTER_RECEIVE@UTISDB(LOGDATE, CENTERID, INFOTYPE, SEQ, DATACNT)
  124. VALUES(SYSDATE, :pLog->szFromCenterId, 'R1', :seq, :pLog->DataCnt);
  125. -- db_svcp.pc
  126. -- SEL_CheckTraffic
  127. SELECT TO_CHAR(regdate, 'YYYYMMDDHH24MISS')
  128. FROM TRAFFIC_CENTER@UTISDB
  129. WHERE regdate > (SYSDATE - 15/1440)
  130. AND ROWNUM < 2;
  131. -- SEL_TrafficCenter
  132. -- struct
  133. -- {
  134. -- char szLinkId[MAX_FETCH_ROWS][SIZE_LINK_ID+1];
  135. -- int nSpeed[MAX_FETCH_ROWS];
  136. -- int nTravelTime[MAX_FETCH_ROWS];
  137. -- int nTrafficGrade[MAX_FETCH_ROWS];
  138. -- int nDataResType[MAX_FETCH_ROWS];
  139. -- } rec;
  140. SELECT linkid,
  141. NVL(speed, 0) speed,
  142. NVL(traveltime, 0) traveltime,
  143. NVL(TO_NUMBER(trafficgrade), 0) trafficgrade,
  144. DECODE(datarestype, 'S', 1, 0) datarestype
  145. FROM TRAFFIC_CENTER@UTISDB
  146. WHERE regdate > (SYSDATE - 15/1440)
  147. AND linklevel = 1
  148. AND missvalueyn = 'R'
  149. --AND datarestype IN ('P', 'G', 'S')
  150. ORDER BY linkid;
  151. -- INS_SndIncident
  152. INSERT INTO SND_INCIDENT(tocenterid, link_linkidnumber, logdate, fromcenterid, node_nodeidnumber,
  153. contactorganizationnametext, descriptiontypeincidentcode, descriptiontypeincidentother,
  154. incidentvehiclesinvolvedcode, incidentvehiclesinvolvedother, incidentstatuscode,
  155. incidentstatusother, updatetypecode, updatetypeother, sendyn)
  156. SELECT '%s',
  157. LINK_ID,
  158. SYSDATE,
  159. '%s',
  160. INCIDENT_ID,
  161. '경찰청정보연계',
  162. TO_NUMBER(INCIDENT_TYPE_CD),
  163. SUBSTRB(REPLACE(INCIDENT_TITLE,'::',' '),1,255),
  164. TO_NUMBER(INCIDENT_SUBTYPE_CD),
  165. SUBSTRB(INCIDENT_DESC,1,255),
  166. NVL(TO_NUMBER(SUBSTR(INCIDENT_TYPE_CD,4,2)), 2),
  167. TO_CHAR(LOCATION_DATA_X, '000.000000000000')||TO_CHAR(LOCATION_DATA_Y, '00.0000000000000')||ADDRESS_NEW,
  168. TO_NUMBER(SUBSTR(INCIDENT_GRADE_CD,5,1)),
  169. TO_CHAR(REPORT_DATE, 'YYYYMMDDHH24MISS')||TO_CHAR(START_DATE, 'YYYYMMDDHH24MISS')||TO_CHAR(END_DATE, 'YYYYMMDDHH24MISS'),
  170. 'N'
  171. FROM UTISINCI.TB_IMS_DATA@UTISDB I, CENTER_REGION R
  172. WHERE NOT EXISTS (SELECT 'X'
  173. FROM SND_INCIDENT
  174. WHERE I.INCIDENT_ID = node_nodeidnumber
  175. AND tocenterid = '%s')
  176. AND REPORT_DATE > SYSDATE - 720/1440
  177. AND R.centerid = '%s'
  178. AND LENGTH(LINK_ID) = 10
  179. AND LOCATION_DATA_X > 100
  180. AND LOCATION_DATA_Y < 100
  181. AND INCIDENT_GRADE_CD IN ('A0401','A0402')
  182. AND R.regioncd = TO_NUMBER(SUBSTR(LINK_ID, 1, 3)
  183. )
  184. -- pToCenterId, pFromCenterId, pToCenterId, pToCenterId);
  185. -- struct
  186. -- {
  187. -- char szLinkId[MAX_FETCH_ROWS][SIZE_LINK_ID+1];
  188. -- char szNodeId[MAX_FETCH_ROWS][SIZE_NODE_ID+1];
  189. -- char szContactOrganizationNameText[MAX_FETCH_ROWS][128+1];
  190. -- int nDescriptionTypeIncidentCode[MAX_FETCH_ROWS];
  191. -- char szDescriptionTypeIncidentOther[MAX_FETCH_ROWS][256+1];
  192. -- int nIncidentVehiclesInvolvedCode[MAX_FETCH_ROWS];
  193. -- char szIncidentVehiclesInvolvedOther[MAX_FETCH_ROWS][256+1];
  194. -- int nIncidentStatusCode[MAX_FETCH_ROWS];
  195. -- char szIncidentStatusOther[MAX_FETCH_ROWS][256+1];
  196. -- int nUpdateTypeCode[MAX_FETCH_ROWS];
  197. -- char szUpdateTypeOther[MAX_FETCH_ROWS][256+1];
  198. -- } rec;
  199. -- SEL_SndIncident
  200. SELECT link_linkidnumber, node_nodeidnumber, contactorganizationnametext,
  201. descriptiontypeincidentcode, descriptiontypeincidentother,
  202. incidentvehiclesinvolvedcode, incidentvehiclesinvolvedother,
  203. incidentstatuscode, incidentstatusother,
  204. updatetypecode, updatetypeother
  205. FROM SND_INCIDENT
  206. WHERE tocenterid = :pToCenterId
  207. AND logdate > SYSDATE - 720/1440
  208. AND fromcenterid = :pFromCenterId
  209. AND sendyn != 'Y'
  210. AND ROWNUM < 100;
  211. -- UPD_SndIncident
  212. UPDATE SND_INCIDENT
  213. SET sendyn = 'Y'
  214. WHERE tocenterid = :pToCenterId
  215. AND logdate > SYSDATE - 720/1440
  216. AND fromcenterid = :pFromCenterId
  217. AND sendyn != 'Y'
  218. AND ROWNUM < 100;
  219. -- INS_SndLog
  220. INSERT INTO SND_LOG(logdate, infokind, tocenterid, fromcenterid, datacnt)
  221. VALUES(SYSDATE, :pLog->szInfoKind, :pLog->szToCenterId, :pLog->szFromCenterId, :pLog->DataCnt);
  222. -- INS_CenterSend
  223. INSERT INTO CENTER_SEND@UTISDB(logdate, centerid, infotype, datacnt)
  224. VALUES(SYSDATE, :pLog->szToCenterId, :pInfoType, :pLog->DataCnt);
  225. -- DEL_CheckIncident
  226. DELETE SND_INCIDENT S
  227. WHERE EXISTS (SELECT 'X'
  228. FROM INCIDENT_CENTER@UTISDB
  229. WHERE incidentid = S.node_nodeidnumber
  230. AND reportdate != TO_DATE(SUBSTR(S.updatetypeother, 1, 14), 'YYYYMMDDHH24MISS'));
  231. -- db_delp.pc
  232. -- DEL_SndIncident
  233. DELETE FROM SND_INCIDENT
  234. WHERE logdate < SYSDATE - 720/1440;
  235. -- DEL_SndLog
  236. DELETE FROM SND_LOG
  237. WHERE logdate < SYSDATE - 2;
  238. -- DEL_RcvTraffic
  239. DELETE FROM RCV_LINK_TRAFFIC
  240. WHERE logdate < SYSDATE - 15/1440;
  241. -- DEL_RcvIncident
  242. DELETE FROM RCV_INCIDENT
  243. WHERE logdate < SYSDATE - 3;
  244. -- DEL_RcvLog
  245. DELETE FROM RCV_LOG
  246. WHERE logdate < SYSDATE - 1;