티스토리 뷰

반응형

MSSQL 서버 업그레이드중  구서버에서 운영 해야 되는 솔루션이 있어서 불가피하게 Linked 서버를 사용하게

되었습니다. 

 

MSSQL Linked 서버 구현 방법은 아래 링크를 참고하세요

2017/11/17 - [IT Story/DB] - MSSQL 연결된 서버 사용하기

 

Linked 서버를 구현 했는데요  예상못한 문제가 발생했습니다. 

 

[문제내용]

MSSQL 쿼리분석기에서  Linked서버를 접근하는 구문을 실행하면 정상적으로 작동하나

PowerBuilder에서 실행하면  아래와 같은 오류가 발생합니다.

 

---------------------------

DataWindow Error

---------------------------

Select error: 유형이 다른 쿼리를 사용하려면 연결에 대해 ANSI_NULLS 및 ANSI_WARNINGS 옵션을 설정해야 합니다. 이렇게 하면 일관된 방식으로 쿼리를 사용할 수 있습니다. 이 옵션을 설정한 다음 쿼리를 다시 실행하십시오.

---------------------------

확인   

---------------------------

 

[해결방법]

쿼리 조회 전에 아래 구분을 먼저 설정하면됩니다.

 

1) DataWindows 내용 조회 할경우

 

Execute Immediate "SET ANSI_NULLS ON"; 

Execute Immediate "SET ANSI_WARNINGS ON"; DataWindow.Retrieve();

 

      2) 오브젝터에서 스크립트를 실행 할 경우

         

Execute Immediate "SET ANSI_NULLS ON"; 

Execute Immediate "SET ANSI_WARNINGS ON"; 

 

Select * From LinkedServername.dbname.dbo.tablenamname;

 

 

PS. C 또는 PHP사용하는경우는 SP 선언전 아래구분을 추가하여 컴파일 하면 해결됩니다.

 

SET ANSI_NULLS ON;

go

SET ANSI_WARNINGS ON;

go

 

Create Proc SPName..

반응형
댓글