데이터베이스에서 참조 열

표준 SQL SELECT 구문이 외부 데이터베이스에 대한 조회에 대해 지원되는 경우에 기억해 두어야 할 여러 가지 사항이 있습니다. SELECT가 메시지의 반복 구조가 아니라 외부 데이터베이스를 대상으로 한다는 것을 나타내기 위해서는 테이블 이름 앞에 키워드 Database를 접두부로 표시해야 합니다.

데이터베이스 SELECT의 기본 형식은 다음과 같습니다.

SELECT ...
  FROM Database.TABLE1
  WHERE ...

필요할 경우, 스키마 이름을 지정할 수 있습니다.

SELECT ...
  FROM Database.SCHEMA.TABLE1
  WHERE ...

여기서 SCHEMA는 테이블 TABLE1이 정의된 스키마의 이름입니다. 실행 중인 사용자 ID가 스키마와 일치하지 않는 경우 스키마를 포함하십시오. 예를 들면, 사용자 ID가 USER1인 경우, 표현식 Database.TABLE1은 Database.USER1.TABLE1과 같습니다. 그러나 데이터베이스에서 테이블과 연관된 스키마가 db2admin인 경우, Database.db2admin.TABLE1을 지정해야 합니다. 스키마를 포함하지 않으며 이것이 현재 사용자 ID와 일치하지 않는 경우, 메시지 플로우에서 메시지를 처리할 때 브로커는 런타임 오류를 생성합니다.

이전 두 예의 경우에서와 같이 데이터 소스를 지정하지 않은 경우, TABLE1은 노드의 데이터 소스 등록 정보로 지정한 디폴트 데이터베이스의 테이블이어야 합니다. 노드의 데이터 소스 등록 정보에 지정된 디폴트 데이터베이스가 아닌 다른 데이터베이스의 데이터에 액세스하려면 데이터 소스를 명시적으로 지정해야 합니다. 예를 들면,
SELECT ...
  FROM Database.DataSource.SCHEMA.TABLE1
  WHERE ...

FROM절에서 테이블에 대해 정의된 테이블 이름 또는 상관 이름으로 열 이름에 대한 참조를 규정하십시오. 따라서 이 경우 일반적으로 다음과 같은 쿼리를 실행할 수 있습니다.

SELECT column1, column2 FROM table1

다음의 두 가지 형식 중 하나를 작성해야 합니다.

SELECT T.column1, T.column2 FROM Database.table1 AS T
 
SELECT table1.column1, table1.column2 FROM Database.table1

데이터베이스 열에 대한 참조를 SELECT에 나타날 수도 있는 메시지의 필드에 대한 참조와 구별하려면 이러한 형식이 필요합니다.

SELECT T.column1, T.column2 FROM Database.table1
    AS T WHERE T.column3 = Body.Field2
AS 절을 사용하여 리턴된 열의 이름을 바꿀 수 있습니다. 예를 들면,
SELECT T.column1 AS price, T.column2 AS item 
  FROM Database.table1 AS T WHERE...

표준 select all SQL 옵션이 SELECT절에서 지원됩니다. 이 옵션을 사용하는 경우, 테이블에 대해 정의된 테이블 이름이나 상관 이름으로 열 이름을 규정해야 합니다. 예를 들면, 다음 코드와 같습니다.

SELECT T.* FROM Database.Table1 AS T

데이터베이스 조회 내에서 ESQL 프로시저 및 함수 이름을 사용하는 경우, 호출 내에서 이들의 배치가 이러한 이름의 처리 방식에 영향을 줍니다. 프로시저 또는 함수가 조회에 의해 리턴된 결과에 영향을 주는 것이 판별된 경우 ESQL로 처리되지 않으며 데이터베이스 호출의 일부로 전달됩니다.

이 사항은 함수 또는 프로시저 이름을 SELECT문 내에서 열 ID와 함께 사용하려고 할 때 적용됩니다.

예를 들면, Select절에 지정된 열 ID에서 CAST문을 사용하는 경우, 해당 열에 대해 리턴되는 데이터의 데이터 유형을 판별하기 위해 데이터베이스 조회 중에 사용됩니다. ESQL CAST는 해당 ESQL 데이터 유형에 대해 수행되지 않으며 리턴되는 데이터는 데이터베이스 대화의 해당 데이터 유형에 대한 해석에 의해 영향을 받습니다.

WHERE절에 지정된 열 ID에서 함수 또는 프로시저를 사용하는 경우, 처리를 위해 데이터베이스 관리자에게 직접 전달됩니다.

계속되는 주제에서의 예는 WebSphere Message Broker에서 외부 데이터베이스 조회의 결과 세트가 표현되는 방식을 설명합니다. 데이터베이스 조회의 결과는 Compute 노드를 사용하여 메시지의 필드에 지정됩니다.

열 함수는 테이블 또는 메시지의 선택된 모든 행에서 단일 열의 값을 가져와 단일 스칼라 결과를 리턴하는 함수입니다.

관련 개념
메시지 플로우 개요
ESQL 개요
메시지 모델링
관련 태스크
메시지 플로우 설계
메시지 플로우 컨텐츠 정의
ESQL 파일 관리
관련 참조
Compute 노드
Database 노드
Filter 노드
ESQL 참조
CARDINALITY 함수
SELECT 함수
메시지 예
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ak05760_