Database/Postgre4 [PostgreSQL] 사용자가 정의한 메시지로 프로시저 내부 EXCEPION 처리 하기 오늘도 돌아온 포스트그레 게시물...ㅎㅎㅎ 이번에는 오라클 프로시저에서 포스트그레 프로시저로 변환하면서 생겼다.기존에 오라클에서 Exception을 통해서 에러가 나면 사용자가 임의로 원하는 메시지가 출력 되도록 되어있었는데 포스트 그레는 해당 부분에 대한 문법이 다른지 출력이 되지 않아 어디서 에러가 나는지 프로시저 내부를 다 들여다 봐야하는 상황이 생겼다... 기존 오라클 Exception 문법은 아래와 같다.Exception에러가 발생하는 경우 에러 코드와 에러 메시지를 뿌리도록 되어있도록 되어있다.( V_ERRNUM, V_ERRMSG 내장 변수를 사용 하였습니다.)DECLARE V_ERRNUM integer; V_ERRMSG varchar(4000); BEGIN -- 실행 코.. 2024. 7. 19. [PostgreSQL] DB테이블 Lock 조회 및 Kill하기 오늘도 요즘 계속 진행중인 코끼리... 하이!!!! 이번에는 무한... 로딩.... 😅 connection이 끊어져서 그런줄 알았는데 계속 실행이 되고 있어서 아무래도 이럴 때는..테이블 Lock이지! 먼저 수행중인 SQL을 조회한다. 현재 수행중인 SQL전체 조회 select datname, --데이터베이스 이름 pid, --프로세스id usename, --사용자이름 application_name, --응용프로그램이름 client_addr, --접속ip client_port, --접속port backend_start, --서버 접속시간 query_start, --쿼리 시작 시간 wait_event_.. 2024. 7. 15. [PostgreSQL] SQL Error [42883]: ERROR: function pg_catalog.btrim(numeric) does not exist 오늘도 포스트그레 에러로 돌아왔다.. 프로시저 오라클에서 포스트그레로 컨버전 하기 너어무 어렵쟈나😭 SQL Error [42883]: ERROR: function pg_catalog.btrim(numeric) does not exist 이건 무슨 에러인고... 보니 btrim 함수는 문자열을 다루는 함수인데 실제로 들어간 데이터가 numeric 데이터 타입에 대해 호출해서 문제라넹..? 데이터 타입과 실제 제공된 데이터 타입이 일치하지 않는 가봄...🤔 trim을 쓰는 의심스러운 부분이 아래와 같은 부분인데...( 로직 노출로 인해 테이블 명 및 로직 일부를 임의의 변수로 대체 하였습니다.)//상단 선언 부분 생략v_errflag varchar(1);v_errnum bigint.. 2024. 7. 10. [PostgreSQL] SQL Error [42883]: ERROR: operator does not exist: timestamp with time zone + text ** 시작 전 편의성을 위해 오라클에서 사용하는 NVL함수를 NVL라는 명칭의 function으로 다음과 같이 생성해 두었습니다. 해당 부분 참고 바랍니다. **CREATE OR REPLACE FUNCTION test.nvl(text, text) RETURNS text LANGUAGE sql IMMUTABLEAS $function$select coalesce(nullif( $1, '' ), $2);$function$; 포스트그레에서는 NVL을 지원하지 않기 때문에 'COALESCE' 를 사용해야 합니다. 문법은 동일하고 명칭만 다릅니다.- NVL 함수 : NVL("값", "지정값") ex) NVL(TEST, 0) : TEST값이 NULL인 경우 0으로 치환 NVL(TES.. 2024. 7. 5. 이전 1 다음 반응형