본문 바로가기

TO_CHAR2

[Oracle] ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 ORA-01861: 리터럴이 형식 문자열과 일치하지 않음Date 타입에 String 타입의 문자열을 넣거나 Date 타입과 String 타입을 비교할 때 발생하는 에러이다. 처음 이 오류를 접했을 때 무지 당황했다 😬 개발환경에서는 오류없이 잘 작동했는데 서버에서 테스트 할 때 문제가 발생했었기 때문인데...환경변수인 NLS_LANG 설정에 영향을 받아서 그렇다고 한다. 지식 추가 +1🤓 환경에 따라서 다른 값으로 설정되기 때문에 데이터 형식을 지정해줄 필요가 있다. 서버환경과 개발환경을 맞추는 방법은 이후에 따로 포스팅을 해야겠다💪 본론으로 다시 돌아가자면 이 에러를 해결하는 방법은 간단하다. 필요에 맞게 타입을 변환해주면 된다!Date 타입 -> String 타입TO_CAHR(컬럼명, 'YYYY.. 2024. 11. 22.
[Oracle] 정수 소수점 표현하기 SELECT 0.1230 FROM DUAL; /* .123 */ ORACLE에서 앞뒤로 있는 0을 날려서 표기된다.이 때, 0을 온전히 표기하고 싶다면 FM표기법을 사용해야한다. FM : 좌우 9로 치환된 소수점 이상의 공백 및 소수점 이하의 0을 제거0 : 고정 자리로 값이 없는 경우 0으로 표시9 : 값이 없거나 0인 경 경우 표시 X SELECT TO_CHAR(0.120, '9.9999') /* .1200 */ , TO_CHAR(0.120, '9.9990') /* .1200 */ , TO_CHAR(0.120, '0.9999') /* 0.1200 */ , TO_CHAR(0.120, '0.9990') /* 0.1200 */FROM DUAL;SELECT TO_CHAR(0.120, '.. 2024. 10. 7.