174 lines
4.2 KiB
Markdown
174 lines
4.2 KiB
Markdown
|
|
-- 요약,
|
|
육상국 가장 최근 송신 방송(일시, ID, 명칭)
|
|
마지막 수신 방송 (, ID, 방송명, 일시(추정), 수신위치(추정), 통달거리(추정))
|
|
방송 송신시각 - 선박 위치수신시각 차이
|
|
|
|
-- 최근 24시간 이내 수신한 방송 List
|
|
위치보고 일시, 방송ID, 방송명, 수신위치, 통달거리
|
|
|
|
※선박의 수신일시, 수신위치, 통달거리는 추정치이며 오차가 발생할 수 있음.
|
|
|
|
### 테스트 자료 복사
|
|
```SQL
|
|
INSERT INTO TB_MSGTXID_H
|
|
SELECT '20220608', CREATE_HH, MSG_TXID , MSG_GBN, MSSAGE_ID , INSERT_DT
|
|
FROM TB_MSGTXID_H
|
|
WHERE CREATE_DT = '20220607'
|
|
|
|
INSERT INTO TB_LC_FSHOPRRPT_202206
|
|
SELECT slot_no,
|
|
report_dt + 1,
|
|
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
|
|
FROM TB_LC_FSHOPRRPT_202206
|
|
WHERE TO_char(REPORT_DT + INTERVAL '9' HOUR , 'yyyymmdd') LIKE '20220607'
|
|
```
|
|
|
|
```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
|
|
|
|
|
|
```
|
|
|
|
# Create Type
|
|
```sql
|
|
|
|
DROP TYPE BRDCST_RCV_COLLECTION_TYPE;
|
|
DROP TYPE BRDCST_RCV_TYPE;
|
|
|
|
|
|
CREATE TYPE BRDCST_RCV_TYPE AS OBJECT
|
|
(
|
|
GUBUN varchar2(100),
|
|
GUBUN2 varchar2(100),
|
|
brd_date DATE,
|
|
brd_index varchar2(100),
|
|
brd_gbn varchar2(100),
|
|
msg_id varchar2(100),
|
|
brd_la NUMBER,
|
|
brd_lo NUMBER,
|
|
brd_reach NUMBER,
|
|
brd_time NUMBER,
|
|
brd_modem varchar2(100)
|
|
);
|
|
|
|
|
|
CREATE TYPE BRDCST_RCV_COLLECTION_TYPE AS TABLE OF BRDCST_RCV_TYPE;
|
|
|
|
|
|
|
|
|
|
SELECT *
|
|
FROM TABLE(FC_BRDCST_RCV_LIST(704))
|
|
|
|
``` |