c9f5915419
This reverts commit 50c5039ec0.
100 lines
3.1 KiB
SQL
Executable File
100 lines
3.1 KiB
SQL
Executable File
-- V_INCIDENT_FTMS (교통정보 돌발/정체) — 개발서버용 구성
|
|
--
|
|
-- 운영 DDL 은 TROAD_APP.V_INCIDENT_FTMS 로, 다수 기반 테이블(V_TRMB_ACDT_BRNWS_INFO01L1,
|
|
-- T_TRMB_ROUTE01M1, TLISDEV.T_TRMB_CD_INFO01M1 ...)을 union all 로 가공하는 읽기 전용 뷰다.
|
|
-- 개발서버에는 기반 테이블이 없고 뷰 자체에는 INSERT 가 불가하므로,
|
|
-- 뷰 결과와 동일한 17개 컬럼을 갖는 물리 테이블을 두고 그 위에 같은 이름의 뷰를 만든다.
|
|
-- 소유자는 chatbotApi 가 실제 접속하는 계정(OPR_MAIN)으로 맞춘다.
|
|
-- jdbc:oracle:thin:@localhost:1521/orcl2 / OPR_MAIN
|
|
|
|
SET DEFINE OFF
|
|
SET SERVEROUTPUT ON
|
|
|
|
-- 기존 뷰 제거 (테이블 재정의 순서 보장)
|
|
BEGIN
|
|
EXECUTE IMMEDIATE 'DROP VIEW OPR_MAIN.V_INCIDENT_FTMS';
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
IF SQLCODE != -942 THEN RAISE; END IF;
|
|
END;
|
|
/
|
|
|
|
-- 뷰의 원본 데이터 테이블
|
|
BEGIN
|
|
EXECUTE IMMEDIATE q'[
|
|
CREATE TABLE OPR_MAIN.T_INCIDENT_FTMS (
|
|
ROUTE VARCHAR2(100),
|
|
ROAD_NO NUMBER,
|
|
ROUTE_ID VARCHAR2(20),
|
|
WEATHER VARCHAR2(100),
|
|
UPDWNAME VARCHAR2(50),
|
|
UPDOWN VARCHAR2(1),
|
|
MILEPOST VARCHAR2(400),
|
|
CONTENTS VARCHAR2(2000),
|
|
RAISE_TIME VARCHAR2(14),
|
|
INCIDENT_TYPE VARCHAR2(20),
|
|
REGION_ID VARCHAR2(20),
|
|
REGION_NAME VARCHAR2(100),
|
|
START_MILEPOST NUMBER,
|
|
INITIALCHAR VARCHAR2(10),
|
|
SEQ_NO VARCHAR2(10),
|
|
INCIDENT_ID VARCHAR2(30),
|
|
CONGZONE_ID VARCHAR2(30),
|
|
LOADED_AT TIMESTAMP DEFAULT SYSTIMESTAMP
|
|
)
|
|
]';
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
IF SQLCODE != -955 THEN RAISE; END IF;
|
|
END;
|
|
/
|
|
|
|
BEGIN
|
|
EXECUTE IMMEDIATE 'CREATE INDEX OPR_MAIN.IX_INCIDENT_FTMS_ROUTE ON OPR_MAIN.T_INCIDENT_FTMS (ROAD_NO, UPDOWN)';
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
IF SQLCODE != -955 AND SQLCODE != -1408 THEN RAISE; END IF;
|
|
END;
|
|
/
|
|
|
|
BEGIN
|
|
EXECUTE IMMEDIATE 'CREATE INDEX OPR_MAIN.IX_INCIDENT_FTMS_TYPE ON OPR_MAIN.T_INCIDENT_FTMS (INCIDENT_TYPE)';
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
IF SQLCODE != -955 AND SQLCODE != -1408 THEN RAISE; END IF;
|
|
END;
|
|
/
|
|
|
|
-- 운영과 동일한 컬럼·순서의 뷰
|
|
CREATE OR REPLACE FORCE VIEW OPR_MAIN.V_INCIDENT_FTMS (
|
|
"ROUTE", "ROAD_NO", "ROUTE_ID", "WEATHER", "UPDWNAME", "UPDOWN", "MILEPOST",
|
|
"CONTENTS", "RAISE_TIME", "INCIDENT_TYPE", "REGION_ID", "REGION_NAME",
|
|
"START_MILEPOST", "INITIALCHAR", "SEQ_NO", "INCIDENT_ID", "CONGZONE_ID"
|
|
) AS
|
|
SELECT ROUTE,
|
|
ROAD_NO,
|
|
ROUTE_ID,
|
|
WEATHER,
|
|
UPDWNAME,
|
|
UPDOWN,
|
|
MILEPOST,
|
|
CONTENTS,
|
|
RAISE_TIME,
|
|
INCIDENT_TYPE,
|
|
REGION_ID,
|
|
REGION_NAME,
|
|
START_MILEPOST,
|
|
INITIALCHAR,
|
|
SEQ_NO,
|
|
INCIDENT_ID,
|
|
CONGZONE_ID
|
|
FROM OPR_MAIN.T_INCIDENT_FTMS;
|
|
|
|
-- 운영 스키마명(TROAD_APP)으로도 접근할 수 있게 동의어 제공
|
|
BEGIN
|
|
EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM V_INCIDENT_FTMS FOR OPR_MAIN.V_INCIDENT_FTMS';
|
|
EXCEPTION
|
|
WHEN OTHERS THEN NULL;
|
|
END;
|
|
/
|