database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41723 게시물 읽기
No. 41723
오라클 질문입니다
작성자
여의도
작성일
2019-05-29 14:33ⓒ
2019-05-29 15:29ⓜ
조회수
5,352

select to_char(sysdate, 'yyyy') || '-01-01' as bas_dt

From dual

Connect by level <= (month_between(to_char(sysdate,'yyyy mm dd') , (to_char(sysdate,'yyyy') || '-01-01)))

로컬 오라클에서는 되는데 서버에 올리면 안되네요. 이유가 뭘까요 ㅠ

에러메세지 이렇게 뜨네요

ORA-01861: literal does not match format string

이 글에 대한 댓글이 총 1건 있습니다.

1. 우선 오타 두개 수정했구요.
 - month_between ==> months_between
 - '-01-01 ==> '-01-01'
2. 오류의 원인은?
 - 자동 형변환시 오류 발생입니다.
 - 자동 형변환이 발생되는 이유는 필요한 타입이 있는 곳에 다른 타입이 들어가서 그래요.
 - months_between 은 날짜를 필요로 하는데 문자를 넣었네요.
3. 테스트 할때는 되는데 운영에서는 안되는 이유는?
 - 실행 환경에 따라 날짜 기본형이 다를 수 있어서 그래요.
 - 자동형변환이 안되도록 명시적으로 포멧을 적어 주던가
 - 필요한 타입에 맞게 인자 타입을 정확하게 맞추어 입력해 주면 됩니다.
4. 오타 수정후 결과는?
 - 똑같은 날짜가 4개 출력되는데?
 - 이게 원하는게 맞는지? 의문이네요.
 - 원하는 결과가 뭘까요?


SELECT TO_CHAR(sysdate, 'yyyy-') || LPAD(LEVEL, 2, '0') || '-01' base_dt
  FROM dual
 CONNECT BY LEVEL < TO_CHAR(sysdate, 'mm')
;

마농(manon94)님이 2019-05-29 17:14에 작성한 댓글입니다.
이 댓글은 2019-05-29 17:15에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
41726토드 limit 설정관련 문의드립니다. [1]
궁금증
2019-06-03
2304
41725안녕하세요. SELECT 구문 조회 시 컬럼 골고루 섞어서 조회하는 방법 문의드립니다. [1]
동물애호가
2019-06-03
2421
41724SELECT 구문 조회 시 컬럼 골고루 섞어서 조회하는 방법 문의드립니다. [1]
동물애호가
2019-05-31
2342
41723오라클 질문입니다 [1]
여의도
2019-05-29
5352
41722같은 테이블 같은 인덱스 같은쿼리 속도가 다른이유는? [1]
개발자
2019-05-13
2760
41721질문드립니다. MVIEW관련 [2]
hsn
2019-05-09
2543
41720여러줄의 결과를 하나의 결과값으로 받기(textarea에 넣기위해) [2]
개발자
2019-05-03
2796
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.054초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다