2009-07-01 3 views
1

내 응용 프로그램에서 Iseries ODBC 쿼리하고 2 테이블에서 결과를 반환하는 쿼리를 수행하려고합니다. 테이블에 가입해야하지만 테이블은 다른 라이브러리에 있습니다. dev> qa> prod에서 이동하면서 라이브러리가 변경 될 때 라이브러리 식별자를 쿼리에 사용하고 싶지 않습니다. 그러나 이러한 테이블은이 라이브러리에만있을 것이며 다른 라이브러리에는 중복이 없을 것입니다. Iseries 라이브러리를 지정하지 않고이 작업을 수행 할 수있는 방법이 있습니까? 본질에서AS400/DB2 교차 라이브러리 쿼리 문제

,이 원하는 :

select DISTINCT GIDNBR, VSL00100.GRNAME 
FROM **QACOMMON**.CMPGRID2 CMPGRID2 INNER JOIN **QAVISLIVE**.VSL00100 VSL00100 ON VSL00100.GRNO=CMPGRID2.GIDNBR AND 
         VSL00100.GRSUB=CMPGRID2.GIDSUB AND 
         VSL00100.GRLOC=CMPGRID2.GIDLOC AND 
        VSL00100.GRPOOL=CMPGRID2.GIDPOL 

는 다음과 같이보고 :

select DISTINCT GIDNBR, VSL00100.GRNAME 
FROM CMPGRID2 CMPGRID2 INNER JOIN VSL00100 VSL00100 
ON 
VSL00100.GRNO=CMPGRID2.GIDNBR AND 
        VSL00100.GRSUB=CMPGRID2.GIDSUB AND 
        VSL00100.GRLOC=CMPGRID2.GIDLOC AND 
       VSL00100.GRPOOL=CMPGRID2.GIDPOL 

어떤 아이디어?

+1

간단한 설명 - 초기 문자 "Q"가있는 라이브러리의 이름을 지정하면 SAVLIB * ALLUSR 저장 작업의 일부로 저장되지 않습니다. 저장이 올바른 데이터를 얻고 있는지 확인하십시오. – user2338816

답변

4

ODBC 연결에 대한 구성으로 이동해야합니다. 연결에서 "구성"을 클릭 한 다음 "서버"탭을 선택하십시오. 도서관 목록 옵션은 당신이 가지고 놀 필요가있는 것입니다.

예제를 바탕으로 "QACOMMON QAVISLIVE"라고 말해야합니다. (따옴표 제외)

또한 * SQL 대신 이름 지정 규칙을 * SYS로 변경하고 기본 모음 필드를 공백으로 만들어야합니다. 시스템 관리자가 사용중인 사용자 프로파일에 CURLIB 매개 변수를 설정하여 새 파일을 원하는 위치로 설정하십시오.

그런 다음 저장하고 다시 시도하십시오. 불행히도 테스트, 프로덕션 및 다른 작업간에 전환 할 때 다른 데이터 소스를 갖거나 ODBC 연결을 변경해야합니다.

+0

시도하고 그 'SQL0204 - cmpgrid2 webaccess 형식 * FILE을 찾을 수 없음'을 recvd webaccess는 username 무엇입니까? –

+0

좋아요, 몇 가지 더 많은 변경이 필요합니다. 그에 따라 내 대답을 업데이트했습니다. –

+1

위의 변경 사항이 다른 것들을 손상시키지 않도록 응용 프로그램을 광범위하게 테스트해야 할 것입니다. 시스템 명명 규칙은 SQL이 일반적으로 사용하는 마침표 (.) 대신 라이브러리 및 파일 이름을 확인할 때 슬래시 (/)를 사용합니다. –