-- 요약, 육상국 가장 최근 송신 방송(일시, ID, 명칭) 마지막 수신 방송 (, ID, 방송명, 일시(추정), 수신위치(추정), 통달거리(추정)) 방송 송신시각 - 선박 위치수신시각 차이 -- 최근 24시간 이내 수신한 방송 List 위치보고 일시, 방송ID, 방송명, 수신위치, 통달거리 ※선박의 수신일시, 수신위치, 통달거리는 추정치이며 오차가 발생할 수 있음. ### 테스트 자료 복사 ```SQL INSERT INTO TB_MSGTXID_H SELECT '20220614', CREATE_HH, MSG_TXID , MSG_GBN, MSSAGE_ID , INSERT_DT + 8 FROM TB_MSGTXID_H WHERE CREATE_DT = '20220606' INSERT INTO TB_LC_FSHOPRRPT_202206 SELECT slot_no, report_dt + 8, modem, fqnc, la, lo, la_bfe10, lo_bfe10, ale_reflct_yn, btry_sttus, last_rcv_brdcst_id, report_day, updt_flag, fshopr_ty, totcnt, sn, kdfsh, totalcat, insert_dt + 8 FROM TB_LC_FSHOPRRPT_202206 WHERE TO_char(REPORT_DT + INTERVAL '9' HOUR , 'yyyymmdd') LIKE '20220606' AND SLOT_NO = 144 ``` ```SQL /* 행 구분 ID (1,2,3) * 행 구분명 (1:최근 송신 방송/2:마지막 수신 방송/3:24시간이내 수신방송 List) * row1-> 방송 송신 일시 / row2,3-> 방송 수신 일시(추정, 방송송신이후 위치수신일시) * 방송인덱스 (년월+시간구분+Index) * 방송구분명 * 요청테이블 MSSAGE_ID * latitude * longitude * 통달거리(null고정, 상황관제시스템에서 계산) * 방송수신에 소요된 시간 */ SELECT gubun AS row_id , gubun2 AS row_gbn , brd_date , brd_index , brd_gbn , msg_id , brd_la , brd_lo , brd_reach , brd_time FROM TABLE(FC_BRDCST_RCV_LIST(1146)) ------------------------------------------------------------ -- 최근 송신 방송 SELECT tmh.insert_dt , tmh.CREATE_DT , tmh.CREATE_HH , tmh.MSG_TXID AS MSG_TXID , tmh.MSG_GBN FROM TB_MSGTXID_H tmh WHERE tmh.INSERT_DT >= sysdate - INTERVAL '24' HOUR AND tmh.INSERT_DT <= sysdate ORDER BY tmh.insert_dt DESC -- 마지막 수신 방송 SELECT a.REPORT_DT + INTERVAL '9' HOUR AS REPORT_DT_KST , a.la , a.lo , a.last_rcv_brdcst_id , a.modem , a.fqnc FROM ( SELECT * FROM TB_LC_FSHOPRRPT_202206 b WHERE b.last_rcv_brdcst_id <> 0 AND b.slot_no = 1146 and b.report_dt <= sysdate - interval '9' hour ORDER BY REPORT_DT DESC ) A WHERE rownum = 1 -- 마지막 수신 방송의 육상국 송신정보 SELECT insert_dt, CREATE_DT||'-'||CREATE_HH||'-'||MSG_TXID AS msg_idx, MSG_GBN, MSSAGE_ID --INTO dBrod_date, vObj.brd_index, vObj.brd_gbn, vObj.msg_id FROM TB_MSGTXID_H WHERE CREATE_DT = to_char(TO_TIMESTAMP(:ar_report_dt_kst, 'yyyy-mm-dd hh24:mi:ss.FF') , 'yyyymmdd') AND CREATE_HH <= to_char(TO_TIMESTAMP(:ar_report_dt_kst, 'yyyy-mm-dd hh24:mi:ss.FF') , 'hh24') AND CREATE_HH + 8 > to_char(TO_TIMESTAMP(:ar_report_dt_kst, 'yyyy-mm-dd hh24:mi:ss.FF') , 'hh24') AND MSG_TXID = :ar_idx -- 최근 24시간내 송신한 방송 SELECT tmh.insert_dt , tmh.CREATE_DT , tmh.CREATE_HH , tmh.MSG_TXID AS MSG_TXID , tmh.MSG_GBN FROM TB_MSGTXID_H tmh WHERE tmh.INSERT_DT >= sysdate - INTERVAL '24' HOUR AND tmh.INSERT_DT <= sysdate ORDER BY tmh.insert_dt DESC -- 송신된 방송중 해당 선박이 수신 한 방송 SELECT (REPORT_DT + INTERVAL '9' HOUR) AS REPORT_DT_KST , a.LAST_RCV_BRDCST_ID , a.la , a.lo , a.modem FROM ( SELECT * FROM TB_LC_FSHOPRRPT_202206 b WHERE b.slot_no = 1146 AND b.report_dt >= to_date('20220607'||'08', 'yyyymmddhh24') - INTERVAL '9' HOUR -- AND to_char(b.report_dt + INTERVAL '9' HOUR , 'hh24') < to_char(to_number('08') + 8, 'FM09') AND b.report_dt <= sysdate - INTERVAL '9' HOUR AND 1 = b.last_rcv_brdcst_id ORDER BY b.report_dt ) a WHERE rownum = 1 ```