DataBase16 ORACLE DECODE 함수 활용법 .ORACLE DECODE 함수란? 기본 개념과 문법 이해하기ORACLE DECODE 함수는 오라클 데이터베이스에서 제공하는 조건부 처리를 위한 특별한 함수입니다. 이 함수는 IF-THEN-ELSE 로직을 SQL 쿼리 내에서 간결하게 구현할 수 있게 해주는 강력한 도구입니다. DECODE 함수는 주어진 표현식을 평가하고, 그 결과에 따라 다양한 값을 반환할 수 있습니다.기본 문법은 다음과 같습니다:DECODE(expression, search1, result1, search2, result2, ..., default) 여기서 expression은 비교할 대상 값이며, search와 result는 각각 비교 값과 그에 해당하는 반환 값입니다. 기본 default 값은 모든 조건이 일치하지 않을 때 반환됩니.. 2025. 5. 21. Oracle -> PostgreSQL 변경 #6. PostgreSQL Cloud 변환 가이드 문서 PostgreSQL Cloud 변환 가이드 문서 PPT 2025. 4. 26. Oracle -> PostgreSQL 변경 #2. Oracle DUP_VAL_ON_INDEX 기능 변환 1. Oracle 사용DECLARE P_PART_NO VARCHAR(100) := '6460011010';BEGIN INSERT INTO pt_part (part_no) VALUES (P_PART_NO);EXCEPTION WHEN DUP_VAL_ON_INDEX THEN raise_application_error(-20902, 'Duplicate ERROR!!');end;;2. PostgreSQL 사용DO$$ DECLARE P_PART_NO VARCHAR(100) := '6460011010'; BEGIN INSERT INTO pt_part (part_no) VALUES (P_PART_NO); EXCEPTION .. 2025. 4. 25. Oracle -> PostgreSQL 변경 #5. Oracle SQL%ROWCOUNT 기능 변환 1. Oracle 사용DECLARE UPD_CNT NUMBER(3);BEGINUPDATE PT_SOUTSET REMARK = '20240718 TEST'WHERE SHOP_CD = 'DK30101' AND SOUT_NO = 'DK2009120141' ;UPD_CNT := SQL%ROWCOUNT;IF UPD_CNT = 0 THEN RAISE_APPLICATION_ERROR(-20001, GET_CSTM_ERR_MSG('PW00026'));END IF;2. PostgreSQL 사용DO $$DECLARE UPD_CNT INT;BEGINUPDATE PT_SOUTSET REMARK = 'SE_JSSON .. 2025. 4. 24. Oracle -> PostgreSQL 변경 #4. Oracle SQLCODE('100') -> SQLSTATE('P0002') 대체 사용 방법 1. Oracle 사용DECLARE vehic_vin VARCHAR(100); vehic_key_no VARCHAR(100);BEGIN SELECT VIN, KEY_NO INTO vehic_vin, vehic_key_no FROM VT_VEHIC_SUPPLY WHERE VIN = 'JTHBN36F7650458881'; -- JTHBN36F765045888 이 존재함 1을 추가하여 NO_DATA_FOUND 에러 발생EXCEPTION WHEN others THEN DBMS_OUTPUT.PUT_LINE('SQLCODE : ' || SQLCODE); IF SQLCODE '100' THEN RAISE_APPLICATION_E.. 2025. 4. 23. Oracle -> PostgreSQL 변경 #3. Oracle BULK COLLECT 문법 변환 1. Oracle 사용DECLARE TYPE DCT_STOCK_FIFO IS TABLE OF PT_STOCK_FIFO_MONTH%ROWTYPE; RC_STOCK_FIFO DCT_STOCK_FIFO := DCT_STOCK_FIFO(); V_MONS VARCHAR(1000) := '200911'; V_SHOP_CD VARCHAR(1000) := 'DM30101'; V_PART_NO VARCHAR(1000) := '0415231090';BEGIN SELECT * BULK COLLECT INTO RC_STOCK_FIFO FROM PT_STOCK_FIFO_MONTH WHER.. 2025. 4. 22. 이전 1 2 3 다음