Stored Procedure

Conheça o componente e saiba como utilizá-lo.

Erick Rubiales avatar
Escrito por Erick Rubiales
Atualizado há mais de uma semana

IMPORTANTE: esta documentação foi descontinuada. Leia a documentação Stored Procedure atualizada no nosso novo portal de documentação.

O Stored Procedure realiza operações através de uma conexão com um banco de dados e retorna dados de procedimento como um único objeto de JSON.

IMPORTANTE: cuidado com o consumo de memória para datasets grandes. BLOB e CLOB ainda não são suportados.

Dê uma olhada nos parâmetros de configuração do componente:

  • Account: conta a ser utilizada pelo componente.

  • Database URL: string de conexão ao banco de dados.

  • SQL Statement: instrução SQL a ser executada.

  • Fail On Error: se a opção estiver habilitada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".

  • Keep Connections: se ativada, a opção vai manter as conexões com a base de dados por no máximo 30 minutos; do contrário, será por apenas 5 minutos.

  • Advanced: configurações avançadas.

  • Connection Test Query: instrução SQL a ser utilizada antes que cada conexão seja estabelecida - esse parâmetro é opcional e deve ser aplicado a bancos de dados que não possuem informações confiáveis sobre o status da conexão.

Fluxo de Mensagens

Entrada

{
"parameters": {
"variable1": "value"
}
}

:?{in;variable1}

  • in: tipo de parâmetro (obrigatório)

  • variable1: nome da variável que veio com a entrada de JSON no corpo da solicitação (obrigatório)

Exemplo

Digamos que você queira realizar uma chamada a um procedimento com um parâmetro de entrada (Oracle, MySql, etc.):

  • call proc (:?{in; variable})

  • SQL Server:

  • exec proc :?{in; variable}

IMPORTANTE: ainda não é possível configurar o tipo IN (VARCHAR, FLOAT, INTEGER, etc.).

Saída

  • :?{out;propertyToOutput;Type;java_type_library}

  • out: tipo de parâmetro (obrigatório)

  • propertyToOutput: nome da propriedade que o componente mostrará no resultado (obrigatório)

  • Tipo: CURSOR, VARCHAR, NUMERIC, FLOAT, etc. (obrigatório)

  • java_type_library: caso você precise utilizar um procedimento em que OUT seja um Oracle CURSOR, será necessário especificar a seguinte Biblioteca: oracle.jdbc.OracleTypes (opcional)

Exemplo

Digamos que você queira realizar uma chamada a um procedimento com um parâmetro de entrada e saída (Oracle, MySql, etc.):

  • call proc (:?{in; variable}, :?{out; nameResultOut;VARCHAR})

SQL Server

  • exec proc :?{in; variable}, :?{out; nameResultOut;VARCHAR}

INOUT

  • :?{in; variable|out;propertyToOutput;Type;java_type_library}

  • in: tipo de parâmetro (obrigatório)

  • variable1: nome da variável que veio com a entrada de JSON no corpo da solicitação (obrigatório)

  • out: tipo de parâmetro (obrigatório)

  • propertyToOutput: nome da propriedade que o componente mostrará no resultado (obrigatório)

  • Tipo: CURSOR, VARCHAR, NUMERIC, FLOAT, etc. (obrigatório)

  • java_type_library: caso você precise utilizar um procedimento em que OUT seja um Oracle CURSOR, será necessário especificar a seguinte Biblioteca: oracle.jdbc.OracleTypes (opcional)

  • propertyToOutput: the property's name that this connector will show in the result (mandatory)

Exemplo

Digamos que você queira realizar uma chamada a um procedimento com um parâmetro de entrada e saída (Oracle, MySql, etc.):

  • call proc (:?{in; variable|out; nameResultOut;VARCHAR})

SQL Server

  • exec proc :?{in; variable|out; nameResultOut;VARCHAR}

Entrada

O componente espera uma mensagem no seguinte formato:

{
"parameters": {
"name": "value"
...
}
}

Saída

{
"out": {
"rs-1": [
{
"column1": "admin",
"column2": 1
},
{
"column1": "jose",
"column2": 2
}
]
},
"success": true
}

Saída com erro

{
"success": false,
"error": error_message,
"message": cause_of_the_error
}
Respondeu à sua pergunta?