테이블 및 뷰에 대한 기본 Insert, Update, Delete 및 Select 작업을 위한 메시지 스키마
Oracle 데이터베이스용 Microsoft BizTalk 어댑터는 Oracle 데이터베이스의 각 테이블 및 뷰에 대한 기본 삽입, 업데이트, 삭제 및 선택 작업을 표시합니다. 이러한 작업은 WHERE 절로 정규화된 적절한 SQL 문을 수행합니다. Oracle Database 어댑터는 이러한 작업에서 강력한 형식의 레코드 및 레코드 집합을 사용합니다.
기본 테이블 작업에 대한 메시지 구조
다음 표에서는 Oracle 데이터베이스 테이블의 Oracle 데이터베이스 어댑터에서 노출하는 기본 테이블 작업에 대한 XML 메시지 구조를 보여 줍니다. 작업의 대상 테이블은 메시지 작업에 지정되며 대상 네임스페이스에도 표시됩니다.
삽입
다음과 같은 유형의 삽입 작업이 있습니다. 메시지에는 한 종류의 삽입 작업만 포함될 수 있습니다.
- 여러 레코드 삽입은 강력한 형식의 데이터의 제공된 레코드 집합을 대상 테이블에 삽입합니다.
- 여러 레코드 삽입의 각 레코드에 대해 InlineValue라는 선택적 특성에 대한 값을 지정할 수 있습니다. 지정된 경우 요소의 값을 재정의합니다.
- 대량 삽입은 QUERY 요소에 지정된 SELECT 쿼리에서 반환된 레코드 집합을 대상 테이블에 삽입합니다. 이 작업은 COLUMN_NAMES 요소에 지정된 열의 쉼표로 구분된 목록을 사용하여 수행됩니다.
XML 메시지
여러 레코드 삽입
<Insert xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<RECORDSET>
<[TABLE_NAME]RECORDINSERT>
<[FIELD1_NAME InlineValue="value"]>value1</[FIELD1_NAME]>
<[FIELD2_NAME InlineValue="value"]>value2</[FIELD2_NAME]>
…
</[TABLE_NAME]RECORDINSERT>
<[TABLE_NAME]RECORDINSERT >
<[FIELD1_NAME InlineValue="value"]>value1</[FIELD1_NAME]>
<[FIELD2_NAME InlineValue="value"]>value2</[FIELD2_NAME]>
…
</[TABLE_NAME]RECORDINSERT>
…
</RECORDSET>
</Insert>
어댑터에서 실행되는 SQL: INSERT INTO TABLE_NAME (FIELD1_NAME, FIELD2_NAME, …)VALUES (value1, value2, …);
대량 삽입
<Insert xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<COLUMN_NAMES>[COLUMN_list]</COLUMN_NAMES>
<QUERY>[SELECT_query]</QUERY>
</Insert>
어댑터에서 실행되는 SQL: INSERT INTO TABLE_NAME (COLUMN_list) SELECT_query;
응답 삽입
삽입된 행 수가 InsertResult 요소에 반환됩니다.
XML 메시지
<InsertResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<InsertResult>[rows inserted]</InsertResult>
</InsertResponse>
선택
SELECT 쿼리는 FILTER 요소에 지정된 WHERE 절을 사용하여 대상 테이블에서 수행됩니다. 결과 집합에는 COLUMN_NAMES 요소에 지정된 쉼표로 구분된 열 이름 목록에 있는 열이 포함됩니다.
XML 메시지
<Select xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<COLUMN_NAMES>[COLUMN_list]</COLUMN_NAMES>
<FILTER>WHERE_clause</FILTER>
</Select>
어댑터에서 실행되는 SQL: SELECT COLUMN_list FROM TABLE_NAME WHERE WHERE_clause;
응답 선택
SELECT 쿼리에서 생성된 결과 집합입니다.
XML 메시지
<SelectResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<SelectResult>
<[TABLE_NAME]RECORDSELECT>
<[FIELD1_NAME]>value1</[FIELD1_NAME]>
<[FIELD2_NAME]>value2</[FIELD2_NAME]>
…
</[TABLE_NAME]RECORDSELECT>
</SelectResult>
</SelectResponse>
업데이트
FILTER 요소에 지정된 where 절과 일치하는 행이 RECORDSET에 지정된 값으로 업데이트됩니다. RECORDSET에 지정된 열만 일치하는 각 행에서 업데이트됩니다.
XML 메시지
<Update xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<RECORDSET>
<[FIELD1_NAME]>value1</[FIELD1_NAME]>
<[FIELD2_NAME]>value2</[FIELD2_NAME]>
…
</RECORDSET>
<FILTER>WHERE_clause</FILTER> </Update>
어댑터에서 실행되는 SQL: UPDATE [TABLE_NAME] SET [FIELD1_NAME] = value1, [FIELD2_NAME] = value2, … WHERE WHERE_clause;
응답 업데이트
업데이트된 행 수는 UpdateResult 요소에 반환됩니다.
XML 메시지
<UpdateResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<UpdateResult>[rows inserted]</UpdateResult>
</UpdateResponse>
삭제
FILTER 요소에 지정된 WHERE 절과 일치하는 행이 삭제됩니다.
XML 메시지
<Delete xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<FILTER>WHERE_clause</FILTER>
</Delete>
어댑터에서 실행되는 SQL: DELETE FROM [TABLE_NAME] WHERE WHERE_clause;
응답 삭제
삭제된 행 수는 DeleteResult 요소에 반환됩니다.
XML 메시지
<DeleteResponse xmlns="[VERSION]/[SCHEMA]/Table/[TABLE_NAME]">
<DeleteResult>[rows inserted]</DeleteResult>
</DeleteResponse>
자리 표시자 값 | Description |
---|---|
[버전] | 메시지 버전 문자열입니다. 예를 들어 http://Microsoft.LobServices.OracleDB/2007/03 |
[스키마] | Oracle 아티팩트 컬렉션; 예를 들어 SCOTT |
[TABLE_NAME] | 테이블의 이름입니다. 예를 들어 EMP |
[FIELD1_NAME] | 테이블 필드 이름; 예를 들어 EMPNAME |
[COLUMN_list] | 열의 쉼표로 구분된 목록; 예를 들어 NAME |
[SELECT_query] | 대량 삽입 작업의 QUERY 요소에 지정된 SQL SELECT 문입니다. 예를 들어 SELECT * from MyTable |
[WHERE_clause] | 작업에 사용되는 SELECT 문에 대한 WHERE_clause. 예를 들어 ID > 10 |
중요
뷰에 대한 기본 테이블 작업의 메시지 구조는 테이블의 메시지 구조와 동일하지만 작업의 네임스페이스는 테이블 <Insert xmlns ="[VERSION]/[SCHEMA]/``View``/[VIEW_NAME]">
이 아닌 뷰를 지정합니다.
기본 테이블 작업에 대한 메시지 작업
다음 표에서는 테이블의 기본 테이블 작업에 Oracle 데이터베이스 어댑터에서 사용하는 메시지 작업을 보여 줍니다. Oracle 데이터베이스 어댑터는 메시지 작업에 지정된 테이블 이름을 사용하여 작업의 대상 테이블을 결정합니다.
작업 | 메시지 작업 | 예제 |
---|---|---|
삽입 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Insert | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert |
응답 삽입 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Insert/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Insert/response |
선택 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Select | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select |
응답 선택 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Select/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Select/response |
업데이트 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Update | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update |
응답 업데이트 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Update/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Update/response |
삭제 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Delete | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete |
응답 삭제 | [VERSION]/[SCHEMA]/Table/[TABLE_NAME]/Delete/response | http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/EMP/Delete/response |
[VERSION] = 메시지 버전 문자열입니다. 예를 들면 입니다 http://Microsoft.LobServices.OracleDB/2007/03
.
[SCHEMA] = Oracle 아티팩트 컬렉션; 예를 들어 SCOTT입니다.
[TABLE_NAME] = 테이블의 이름입니다. 예를 들어 EMP입니다.
중요
뷰에서 작업에 대한 메시지 동작은 "보기"가 "테이블"을 대체한다는 점을 제외하고 테이블의 경우와 동일합니다. 예를 들면 입니다 http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/``View``/EMPVIEW/Insert
.