본문 바로가기

Database 빌드업3

[오라클|Oracle] 에러 코드 ORA-01847: day of month must be between 1 and last day of month [오라클|Oracle] 에러 코드 ORA-01847: day of month must be between 1 and last day of month ORA-01847: 달의 날짜는 1에서 말일 사이어야 합니다 테스트 중 ORA-01847: day of month must be between 1 and last day of mobth 에러가 발생하였습니다. 에러 발생 원인 8월이 31일까지 있는데 PLAN_TEST 테이블의 plan_date 값이 20230832로 출력이 되어 발생한 에러입니다. (참고로 plan_date 형식은 varchar2입니다.) 해결 방법 plan_date 형식을 문자형식에서 DATE형식으로 다시 문자형식으로 변경해서 정상적인 날짜로 출력 되게 해결하였습니다. char -> dat.. 2023. 9. 1.
[오라클|Oracle] 숫자인 데이터 검색하기 [오라클|Oracle] 숫자인 데이터 검색하기 오라클(Oracle)에서 값이 숫자인 데이터만 검색하는 방법을 알아보겠습니다. 아래 3가지 방법을 이용하여 숫자로만 이루어진 데이터를 확인할 수 있습니다. ● regexp_instr 함수 이용하여 숫자 데이터 검색 ● translate(문자열 치환 함수) 이용하여 숫자 데이터 검색 ● IS_NUMBER 사용자 정의함수 생성하여 숫자 데이터 검색 방법 1. REGEXP_INSTR을 이용하여 숫자인 데이터 검색 regexp_instr( 칼럼명, '[^0-9]') = 0 숫자가 아닌 값의 위치를 반환함, 0이면 모든 값이 숫자임 select city, num from ( select '서울' city, '02' num from dual union all selec.. 2023. 8. 30.
[오라클|Oracle] 에러 코드 ORA-01476 제수가 0 입니다. [오라클|Oracle] 에러 코드 ORA-01476 제수가 0입니다 SQL 통계작업 중 "ORA-01476 제수가 0입니다"라는 에러를 종종 보게 됩니다. *원인 원인은 쿼리 내 나누는 연산에서 분모가 0일 때 발생 하게 됩니다. *해결방법 1. decode 사용 --decode select decode( 분모, 0,0, null,0, 분자/분모 ) result from DUA ex) select decode( 0,0,0, null,0,100/0 ) result from DUAL; 2.nullif 사용 --nullif select nvl(분자/nullif(분모, 0),0) result from DUAL; ex) select nvl(100/nullif(0,0),0) result from DUAL; *nul.. 2023. 8. 28.