WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Chamando Procedimentos Armazenados

Para chamar um procedimento que está armazenado em um banco de dados, utilize a instrução ESQL CALL. O procedimento armazenado deve ser definido por uma instrução CREATE PROCEDURE que possui uma cláusula Language igual a DATABASE e uma cláusula EXTERNAL NAME que identifica o nome do procedimento no banco de dados e, opcionalmente, o esquema do banco de dados ao qual ele pertence.

Ao chamar um procedimento armazenado com a instrução CALL, o broker assegurará que a definição ESQL e a definição do banco de dados são correspondentes:

As seguintes restrições aplicam-se ao uso de procedimentos armazenados:

Criando um Procedimento Armazenado no ESQL

Ao definir um procedimento ESQL que corresponda a um procedimento armazenado do banco de dados, você pode especificar um nome qualificado (em que o qualificador é um esquema de banco de dados) ou um nome não qualificado.

Para criar um procedimento armazenado:

  1. Codifique uma instrução semelhante a esse exemplo para criar um procedimento não qualificado:
    CREATE PROCEDURE myProc1(IN p1 CHAR) LANGUAGE DATABASE EXTERNAL NAME "myProc";

    O EXTERNAL NAME especificado deve corresponder à definição que você criou no banco de dados, mas é possível especificar qualquer nome escolhido para o procedimento ESQL correspondente.

  2. Codifique uma instrução semelhante a esse exemplo para criar um procedimento qualificado:
    CREATE PROCEDURE myProc2(IN p1 CHAR) LANGUAGE DATABASE EXTERNAL NAME "Schema1.myProc";
  3. Codifique uma instrução semelhante a esse exemplo para criar um procedimento qualificado em um pacote Oracle:
    CREATE PROCEDURE myProc3(IN p1 CHAR) LANGUAGE DATABASE EXTERNAL 
                     NAME "mySchema.myPackage.myProc";
Para obter exemplos das definições do procedimento armazenado no banco de dados, consulte Instrução CREATE PROCEDURE.

Chamando um Procedimento Armazenado

  1. Codifique uma instrução semelhante a este exemplo para chamar um procedimento não qualificado:
    CALL myProc1('HelloWorld');

    Como não está definido explicitamente como pertencente a qualquer esquema, o procedimento myProc1 deve existir no esquema padrão (cujo nome é o nome de usuário usado para conectar-se à origem de dados) ou o comando falhará.

  2. O exemplo a seguir chama o procedimento myProc no esquema Schema1.
    CALL myProc2('HelloWorld');
  3. Codifique uma instrução semelhante a este exemplo para chamar um procedimento não qualificado com um esquema dinâmico:
    DECLARE Schema2 char 'mySchema2';
    CALL myProc1('HelloWorld') IN Database.{'Schema2'};

    A declaração chama o procedimento myProc1 no banco de dados Schema2, substuindo o esquema de "nome de usuário" padrão.

Chamando um Procedimento Armazenado que Retorna Dois Conjuntos de Resultados

Para chamar um procedimento armazenado que utiliza um parâmetro de entrada e retorna um parâmetro de saída e dois conjuntos de resultados:
  1. Defina o procedimento com uma instrução CREATE PROCEDURE que especifica um parâmetro de entrada, um parâmetro de saída e dois conjuntos de resultados:
    CREATE PROCEDURE myProc1 (IN P1 INT, OUT P2 INT)
      LANGUAGE DATABASE
      DYNAMIC RESULT SETS 2
      EXTERNAL NAME "myschema.myproc1";
  2. Para chamar o procedimento myProc1 usando uma referência de campo, codifique:
    /* utilizando uma referência de campo */
    CALL myProc1(InVar1, OutVar2, Environment.ResultSet1[], 
                OutputRoot.XMLNS.Test.ResultSet2[]);
  3. Para chamar o procedimento myProc1 usando uma variável de referência, codifique:
    /* utilizando uma variável de referência*/
    DECLARE cursor REFERENCE TO OutputRoot.XMLNS.Test;
    
    CALL myProc1(InVar1, cursor.OutVar2, cursor.ResultSet1[], 
                         cursor.ResultSet2[]);
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:28:24


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | ac17040_