다음을 통해 공유


SQLEXECUTE 작업에 대한 메시지 스키마

Microsoft BizTalk Adapter for Oracle Database는 LOB 시스템에 있는 아티팩트에 대해 강력한 형식의 메타데이터를 표시하고 이러한 아티팩트에 대한 표준 작업을 노출합니다. 그러나 애플리케이션에서 비즈니스 논리에 의해 구동되는 임의의 SQL 문을 실행해야 하는 시나리오가 있습니다. 예를 들어 다음을 수행하려고 할 수 있습니다.

  • Oracle 데이터베이스 어댑터에 의해 표시되지 않는 데이터베이스 아티팩트에서 작업을 수행합니다. 예를 들어 Oracle SEQUENCE의 CURVAL 또는 NEXTVAL을 가져옵니다.

  • 데이터 정의 언어 작업을 수행합니다. 예를 들어 테이블을 만듭니다.

  • 디자인 타임에 존재하지 않는 데이터베이스 아티팩트에서 작업을 수행합니다. 예를 들어 비즈니스 논리에서 만든 임시 테이블의 레코드를 업데이트합니다.

  • Oracle 데이터베이스 어댑터에 의해 표시된 작업보다 테이블에서 더 복잡한 DML 작업을 수행합니다. 예를 들어 JOIN 절을 포함하는 쿼리를 수행합니다.

    Oracle 데이터베이스 어댑터는 이러한 시나리오를 지원하기 위해 SQLEXECUTE 작업이라는 특수 작업을 표시합니다. 이 작업을 사용하면 Oracle 데이터베이스에서 실행할 Oracle 데이터베이스 어댑터에 대해 임의의 SQL 문을 지정할 수 있습니다. SQL 문에 여러 입력 매개 변수 블록을 지정할 수도 있습니다. Oracle Database 어댑터는 각 매개 변수 집합에 대해 SQL 문을 한 번 실행하고 모든 출력을 제네릭(약한 형식의) 레코드 집합으로 반환합니다.

참고

SQLEXECUTE 작업의 프로시저, 함수 및 패키지에 IN 및 IN OUT 매개 변수를 전달할 수 있습니다. 호출된 아티팩트가 Oracle 데이터베이스에서 제공된 매개 변수를 사용하여 실행됩니다. 그러나 SQLEXECUTE 작업은 OUT 및 IN OUT 매개 변수 값을 클라이언트에 반환하지 않습니다. 프로시저, 함수 또는 패키지를 호출하려면 Oracle 데이터베이스 어댑터가 이러한 Oracle 아티팩트용으로 노출하는 전용 작업을 호출하여 이 작업을 수행하는 것이 좋습니다.

다음 XML은 SQLEXECUTE 작업의 구조를 보여줍니다.

<SQLEXECUTE xmlns="SQLEXECUTE">  
  <SQLSTATEMENT> [STATEMENT] </SQLSTATEMENT>  
  <PARAMETERSCHEMA>[PARAM_SPEC]</PARAMETERSCHEMA>  
  <PARAMETERSET>  
    <PARAMETERDATA>  
      <PARAMETER xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">  
        <c:string>[PARAM_VAL_1]</c:string>  
      </PARAMETER>  
    </PARAMETERDATA>  
    …  
  </PARAMETERSET>  
</SQLEXECUTE>  

[STATEMENT] = 실행할 SQL 문입니다. 예: "SELECT * from emp WHERE empno=:emp_no".

[PARAM_SPEC] = SQL 문 및 해당 데이터 형식의 IN 매개 변수 목록입니다. 예를 들어 "emp_no NUMBER"입니다.

[PARAM_VAL_1] = 첫 번째 매개 변수의 값입니다.

각 <PARAMETERDATA> 섹션에는 PARAMETERSCHEMA> 섹션의 <스키마와 일치하는 전체 PARAMETER 요소 집합이 <> 포함되어 있습니다. PARAMETERSET>에는 <여러 <PARAMETERDATA> 섹션이 포함될 수 있습니다. 이 경우 SQL 문은 각 매개 변수 집합에 대해 한 번씩 여러 번 실행됩니다.

참고 항목

BizTalk Adapter for Oracle Database에 대한 메시지 및 메시지 스키마