문제

Oracle 8i 데이터베이스에 연결된 SQL Server 2000 데이터베이스가있는 클라이언트가 있습니다. SQL Server 2000 데이터베이스에는 Oracle 데이터베이스를 참조하는 수십 개의 뷰가 있습니다.

SELECT *
FROM  SERVER..DB.TABLE

이러한 견해 (및이를 참조하는 Sprocs)는 몇 년 동안 문제없이 일했습니다. 갑자기 오늘 아침, 일부 (전부는 아님)는 다음과 같은 오류로 실패합니다.

Server: Msg 7330, Level 16, State 2, Procedure SALES_ORDER_HEADERS, Line 7
Could not fetch a row from OLE DB provider 'MSDAORA'. 
[OLE/DB provider returned message: ORA-01854: julian date must be between 1 and 5373484]
OLE DB error trace [OLE/DB Provider 'MSDAORA' IRowset::GetNextRows returned 0x80040e07].

위의 4 부 구문 (보기가 정의 된 것과 동일한 구문)을 사용하여 데이터를 선택하면 쿼리는 문제없이 성공합니다. 그러나 해당 구문에 대한보기를 만들 수없고 기존 뷰 (디자이너)를 편집 할 수 없으며 링크 된 테이블이 직접 쿼리하는 이유를 알 수 없지만 쿼리를 통해 사용하는 것이 실패합니다.

우리 회사는 시스템을 구축하지도 않았고 일반적으로 유지 관리하지도 않습니다. 고객은 내부 개발자 팀을 가지고 있지만 문제 해결 지원을 요청했습니다. 내가 여기서 물어볼 것이라고 생각했다.

우리가 왜 우리 가이 행동을 보게 될지 단서가있는 사람이 있습니다. 더 중요한 것은 어떻게 그것을 수정 하는가? (업그레이드 부족,이 시점에서 옵션이 아닙니다.) 임시 해결 방법으로, 우리는 OPENQUERY 기능을 수행하지만 물론 개는 느립니다. 우리는 포함되지 않는 솔루션을 원합니다 OPENQUERY, 가능하다면.

의견에 대한 응답으로 : NO가 있습니다 ORDER BY 견해에 정의됩니다. 스프로스에있을 수 있지만 확실하지 않습니다. (질문을 게시하기 전에 약 20 분 동안 처음 으로이 데이터베이스를 보았습니다. :))

도움이 되었습니까?

해결책

나는 몇 년 동안 일어나지 않은 데이터의 변화가 일어났다 고 생각합니다. 비슷한 몇 년 전에 중요한 응용 프로그램 모듈, 테스트, 테스트, 많은 사용 사례에 대한 테스트 및 모든 미세를 개발하고 있었으며 생산의 날이 테스트되지 않은 패턴이 도입되었습니다! 믿을 수 없지만 사실입니다!

데이터에 대한 변화가 잘못 되었기 때문에 어떤 종류의 문제가주는 것입니다. TO_CHAR(xx, 'J') 전화. 예를 들어, 0 또는 네거티브 데이터.

많은 전화가 떨어지기 때문에 모든 사람에게 공통적 인 기본 테이블/열일 수 있습니다.

행위:

  • 활성화 추적하다 Oracle의 세션을 위해 ( 활성 세션 그리고 오류 번호의 경우).
  • "공통 분모"테이블/열을 찾은 다음 이상한 값을 찾으십시오.

다른 팁

당신의 견해에 "주문"이 있습니까? 이것이 원인 일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top