/*******************************************************************
* TABLE 생성
********************************************************************/
CREATE TABLE XXX.LUNAR_TO_SOLAR
(
LUNAR_DATE VARCHAR2(8) NOT NULL,
SOLAR_DATE VARCHAR2(8),
YUN CHAR(1),
GANJI VARCHAR2(8)
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
NOMONITORING;
COMMENT ON COLUMN XXX.LUNAR_TO_SOLAR.LUNAR_DATE IS '양력';
COMMENT ON COLUMN XXX.LunarToSolar.SOLAR_DATE IS '음력';
COMMENT ON COLUMN XXX.LunarToSolar.YUN IS '윤년';
COMMENT ON COLUMN XXX.LunarToSolar.GANJI IS '간지';
ALTER TABLE XXX.LUNAR_TO_SOLAR ADD (
CONSTRAINT LUNAR_TO_SOLAR_PK
PRIMARY KEY
(LUNAR_DATE));
/*******************************************************************
* FUNCTION 생성
********************************************************************/
CREATE OR REPLACE FUNCTION XXX.F_LUNAR_TO_SOLAR (
IN_DATE IN VARCHAR2,
IN_FLAG IN INT
)
RETURN VARCHAR2
IS
V_RESULT VARCHAR2(8);
/*******************************************************************
* TITLE : F_LUNAR_TO_SOLAR
* DESCRIPTION : 양음력 변환
* 작성자 : 까칠한 쑤
* 일 자 :
*
* USE Table : LUNARTOSOLAR : 양음력 매핑 Table
* 주요 코드 : IN_FLAG : 0 : 양력 ==> 음력
1 : 음력 ==> 양력
IN_DATE : 20040802 형식의 Date
* USE : SELECT F_LUNAR_TO_SOLAR('20041119',0)
(양력 ==> 음력)
SELECT F_LUNAR_TO_SOLAR('20041119',1)
(음력 ==> 양력)
-- 날짜 형식이 틀리면 NULL 을 리턴한다..(DB에 Data 가 없으므로..)
********************************************************************/
BEGIN
-- 양력 => 음력
IF IN_FLAG = 0 THEN
SELECT SOLAR_DATE
INTO V_RESULT
FROM LUNARTOSOLAR
WHERE LUNAR_DATE = IN_DATE;
-- 음력 => 양력
ELSE
SELECT LUNAR_DATE
INTO V_RESULT
FROM LUNARTOSOLAR
WHERE SOLAR_DATE = IN_DATE;
END IF;
RETURN V_RESULT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END F_LUNAR_TO_SOLAR;
[Oracle]ORA-12638: 신용검색에 실패했습니다 (0) | 2016.10.12 |
---|---|
[Oracle 12c 계정생성] SQL 오류: ORA-65096 (0) | 2016.05.03 |
Oracle Table Comment 명령어 (0) | 2015.09.18 |
[오라클] 테이블, 컬럼 목록 조회 (0) | 2015.02.13 |
Oracle 암호화 / 복호화 (0) | 2015.01.22 |