Compartir vía


Esquemas de mensaje para la operación SQLEXECUTE

El adaptador de Microsoft BizTalk para oracle Database muestra metadatos fuertemente tipados para artefactos presentes en el sistema LOB y expone operaciones estándar en estos artefactos. Sin embargo, hay escenarios en los que una aplicación podría requerir la ejecución de una instrucción SQL arbitraria controlada por la lógica de negocios de la aplicación. Por ejemplo, puede que desee:

  • Realice una operación en artefactos de base de datos que no estén expuestos por el adaptador de base de datos de Oracle; por ejemplo, obtenga la CURVAL o NEXTVAL de una secuencia de Oracle.

  • Realizar operaciones del lenguaje de definición de datos; por ejemplo, cree una tabla.

  • Realizar operaciones en un artefacto de base de datos que no estaba presente en tiempo de diseño; por ejemplo, actualice los registros de una tabla temporal creada por la lógica de negocios.

  • Realizar operaciones DML más complejas en tablas que las operaciones expuestas por el adaptador de base de datos de Oracle; por ejemplo, realice una consulta que incluya una cláusula JOIN.

    El adaptador de base de datos de Oracle muestra una operación especial denominada operación SQLEXECUTE para admitir estos escenarios. Mediante esta operación, puede especificar una instrucción SQL arbitraria para que el adaptador de Base de datos de Oracle se ejecute en la base de datos de Oracle. También puede especificar varios bloques de parámetros de entrada en la instrucción SQL. El adaptador de base de datos de Oracle ejecuta la instrucción SQL una vez para cada conjunto de parámetros y devuelve cualquier salida como un conjunto de registros genérico (con tipo débil).

Nota

Puede pasar parámetros IN e IN OUT a procedimientos, funciones y paquetes en la operación SQLEXECUTE. El artefacto invocado se ejecutará con los parámetros proporcionados en la base de datos de Oracle; Sin embargo, la operación SQLEXECUTE no devuelve el valor de los parámetros OUT e IN OUT al cliente. Si desea invocar procedimientos, funciones o paquetes, Microsoft recomienda hacerlo invocando las operaciones dedicadas que expone el adaptador de Oracle Database para estos artefactos de Oracle.

El siguiente XML muestra la estructura de la operación 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] = La instrucción SQL que se va a ejecutar; por ejemplo, "SELECT * from emp WHERE empno=:emp_no".

[PARAM_SPEC] = La lista de los parámetros IN de la instrucción SQL y sus tipos de datos; por ejemplo, "emp_no NUMBER".

[PARAM_VAL_1] = El valor del primer parámetro.

Cada <sección PARAMETERDATA> contiene un conjunto completo de <elementos PARAMETER> que coinciden con el esquema de la <sección PARAMETERSCHEMA> . PARAMETERSET> puede contener varias <secciones PARAMETERDATA>.< Si este es el caso, la instrucción SQL se ejecuta varias veces, una vez en cada conjunto de parámetros.

Consulte también

Mensajes y esquemas de mensaje para el adaptador de BizTalk para la base de datos de Oracle