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 41185 게시물 읽기
No. 41185
고수님들의 뜨거운 조언을 구합니다.
작성자
벌집
작성일
2016-06-23 00:33
조회수
7,545

오라클 프로시저 실행 시 오류에 관한 조언을 구합니다.

 

현재 프로시저 내부에는 다른 owner의 뷰를 select 하여 insert 하는 로직으로 구성되어 있습니다.

 

1. 서버 caracter set : AL32UTF8, 클라이언트 characterset : KO16NSWIN949

 

2. 에러 : ORA-01847: day of month must be between 1 and last day of month

 

3. 다른 OWNER의 뷰를 SELECT 하는 부분을 주석처리 하면 프로시저 실행에 아무런 문제가 없습니다.

 

4. 뷰 생성 스크립트에는 TO_DATE('9999-12-31) 을 WHERE 조건에 사용하는 구문이 있습니다.

 

5. 프로시저에는 INPUT PARAMETER 가 없습니다.

 

6. ORCLE VERSION은 11G 입니다.

 

오라클 툴에서 프로시저를 EXECUTE 하면 프로시저는 잘 수행 됩니다.

 

하지만, C# 프로그램에서 프로시저를 호출하면 2번과 같은 에러가 출력 됩니다.

 

제 소견으로는 서버측 DATA FORMAT과 CLIENT측 DATA FORMAT 이 달라서 그런게 아닐까 하는데요....

 

혹시 뷰 생성 스크립트 수정으로 이 문제가 해결 될는지요?(뷰생성 스크립트 수정 권한이 없습니다)

 

문제에 대한 소견을 듣고 싶습니다.(에러발생 대처 방법 & 오류 발생 이유)

 

답변 부탁드립니다.

 

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

TO_DATE('9999-12-31', 'yyyy-mm-dd')

마농(manon94)님이 2016-06-23 08:48에 작성한 댓글입니다.

답변 감사드립니다. 혹시 이 문제가 date format 이 달라서 발생하는문제가 맞을까요?

그런데 일반쿼리 실행시에는 오류가 발생하지 않는데 프로시저 호출시 왜발생하는걸까요?

벌집님이 2016-06-23 10:33에 작성한 댓글입니다. Edit

TO_DATE('9999-12-31')
이 쿼리는 실행 환경에 따라 에러 가능성 농후합니다.
  - 서버 설정에 따라
  - 클라이언트 설정에 따라
  - 사용하는 툴의 설정에 따라


TO_DATE('9999-12-31', 'yyyy-mm-dd')
이 쿼리는 어떤 환경에서 실행하든 에러 안나죠.

마농(manon94)님이 2016-06-23 13:54에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41188실용성이 있는 SQL 퀴즈입니다. ^^ [3]
김흥수
2016-06-24
10395
41187아카이브 로그파일 위치 변경 . [1]
dba
2016-06-23
7533
41186비정상데이터 connect by 조회가능할까요. [1]
김정묵
2016-06-23
7317
41185고수님들의 뜨거운 조언을 구합니다. [3]
벌집
2016-06-23
7545
41184포인트 이력 조회 [2]
IT재벌
2016-06-22
7499
41183기간 사이의 날짜 뽑아 내기 질문 입니다. [2]
ASKO912
2016-06-22
8927
41182ORACLE DB Backup 방법 문의 [4]
이성근
2016-06-22
7418
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다