Condividi tramite


Schemi di messaggio per l'operazione SQLEXECUTE

L'adapter Microsoft BizTalk per Oracle Database presenta metadati fortemente tipizzato per gli artefatti presenti nel sistema LOB ed espone operazioni standard su questi artefatti. Tuttavia, esistono scenari in cui un'applicazione potrebbe richiedere l'esecuzione di un'istruzione SQL arbitraria basata sulla logica di business nell'applicazione. Ad esempio, è consigliabile:

  • Eseguire un'operazione sugli artefatti del database che non vengono visualizzati dall'adattatore Oracle Database; ad esempio, ottenere CURVAL o NEXTVAL di una sequenza Oracle.

  • Eseguire operazioni del linguaggio di definizione dei dati; ad esempio, creare una tabella.

  • Eseguire operazioni su un artefatto di database non presente in fase di progettazione; ad esempio, aggiornare i record in una tabella temporanea creata dalla logica di business.

  • Eseguire operazioni DML più complesse sulle tabelle rispetto alle operazioni visualizzate dall'adattatore Oracle Database; Ad esempio, eseguire una query che include una clausola JOIN.

    L'adapter Di database Oracle visualizza un'operazione speciale denominata operazione SQLEXECUTE per supportare tali scenari. Usando questa operazione, è possibile specificare un'istruzione SQL arbitraria per l'esecuzione dell'adapter di database Oracle nel database Oracle. È anche possibile specificare più blocchi di parametri di input all'istruzione SQL. L'adapter di database Oracle esegue l'istruzione SQL una volta per ogni set di parametri e restituisce qualsiasi output come set di record generici (tipizzato in modo debole).

Nota

È possibile passare parametri IN e IN OUT a procedure, funzioni e pacchetti nell'operazione SQLEXECUTE. L'artefatto richiamato verrà eseguito con i parametri forniti nel database Oracle; tuttavia, l'operazione SQLEXECUTE non restituisce il valore dei parametri OUT e IN OUT al client. Se si desidera richiamare procedure, funzioni o pacchetti, Microsoft consiglia di richiamare le operazioni dedicate esposte dall'adapter Oracle Database per questi artefatti Oracle.

Il codice XML seguente mostra la struttura dell'operazione 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] = Istruzione SQL da eseguire; ad esempio, "SELECT * from emp WHERE empno=:emp_no".

[PARAM_SPEC] = Elenco dei parametri IN nell'istruzione SQL e nei relativi tipi di dati; ad esempio"emp_no NUMBER".

[PARAM_VAL_1] = Valore del primo parametro.

Ogni <sezione PARAMETERDATA> contiene un set completo di <elementi PARAMETER che corrispondono allo <schema nella sezione PARAMETERSCHEMA>>. PARAMETERSET <> può contenere più <sezioni PARAMETERDATA>. Se si tratta del caso, l'istruzione SQL viene eseguita più volte, una volta rispetto a ogni set di parametri.

Vedere anche

Messaggi e schemi di messaggio per l'adapter BizTalk per database Oracle