2017-12-19 9 views
1

SQL Server 17에서 연결된 서버를 통해 Oracle 연결 피드에 대한 열기 쿼리를 실행하려고합니다. 아래에 게시 된 쿼리를 실행하면 매번 행 7833에 걸렸습니다.동일한 행 번호에서 Openquery가 실행되지 않음

검색어 :

SELECT 
    sys_ohi, 
    "Region", 
    sub_acct_no_ohi, 
    serv_cde_ohi, 
    connect_dte_ohi, 
    charge_amt_ohi 

FROM openquery (MyServer, ' 
(SELECT DISTINCT 
    sys_ohi, 
CASE 
    WHEN prin_ohi = ''1000'' THEN ''Seattle East'' 
    WHEN prin_ohi = ''1500'' THEN ''Seattle West'' 
    WHEN prin_ohi = ''2000'' THEN ''Oregon'' 
    WHEN prin_ohi = ''3000'' THEN ''Sacramento'' 
    WHEN prin_ohi = ''3500'' THEN ''San Francisco'' 
     END AS "Region", 
    sub_acct_no_ohi, 
    serv_cde_ohi, 
    connect_dte_ohi, 
    charge_amt_ohi 

FROM mytable_ohi 

WHERE serv_cde_ohi IN (''INSTALL'') 
AND connect_dte_ohi > trunc(to_date(''06-01-2017'',''MM-DD-YYYY'')))') 

내가 36 다른 serv_cde_ohi IN (''INSTALL'')을 가지고 있지만 나는 문 '의'성능 끔찍했다 내에 넣어 시도 이후 36 UNION 다른 시나리오에 대한 모든 쿼리를 만들었습니다.

이 쿼리가 같은 지점에서 멈추는 이유를 알아야합니다.

+0

"멈춤"이란 무엇을 의미합니까? –

+1

Microsoft SQL Server에서 쿼리 완료는 행 7833에 도달하면 실행을 중지합니다. 그러나 쿼리의 상태는 '쿼리 실행 중'입니다. 액티비티 모니터를 점검 할 때 RUNNING 작업과 SELECT 명령에서 '멈춤'상태입니다. 쿼리를 취소하고 서버를 완전히 재부팅 할 때까지 쿼리가 중지되지 않습니다. – cbrown92

+0

'MyServer'에서 쿼리를 실행하면 올바르게 완료됩니까? –

답변

0

UNION ALL 선언이 실행을 시작하기 위해 암시 적 데이터 변환에 의존 할 수 있습니다. 그런 다음 암시 적 변환이 관찰되는 방식으로 커서 가져 오기 중에 데이터 조건이 발생합니다.

모든 암시 적 종속성을 제거하십시오. 각 SELECT의 각 항목에 대해 명시 적으로 데이터 유형을 설정하십시오 (당연히 각 항목에 대해 동일한 유형).

+0

답변 해 주셔서 감사합니다. 날짜와 관련된 데이터 변환과 관련이 있습니다. 나는 오라클에서 당기고 있는데,이 데이터베이스는 Microsoft SQL Server를 사용하는 것과 다른 날짜 형식을 가지고 있습니다. 답변 해 주셔서 감사합니다. 날짜 입력란을 재평가 해 주셔서 감사합니다. – cbrown92

+0

@ cbrown92 듣기가 좋아. 날짜 값의 암시 적 변환은 결국 모든 사람을 물게합니다. 나는 Oracle과 SQL Server가 "다른 날짜 형식"을 가지고 있지 않다는 것을 분명히하고 싶습니다. 데이터 보관 체인에 날짜 값은 단지 문자열이며 날짜 값은 예기치 않은/암시 적 형식 패턴으로 날짜 데이터 형식이 문자열로 변환되는 (데이터 데이터 형식으로 다시 변환되는) 날짜 값입니다. –

+0

나는 그 후속 조치에 크게 감사하고있다, 마이클! – cbrown92