Stored Procedure

Descubra mais sobre o componente Stored Procedure e saiba como utilizá-lo na Digibee Integration Platform.

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. Para consultar quais os bancos de dados suportados por esse componente, leia a documentação Bancos de dados suportados.

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

Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

Parâmetro
Descrição
Valor padrão
Tipo de dado

Account

Conta a ser utilizada pelo componente. Contas suportadas: Basic.

N/A

String

Database URL

String de conexão ao banco de dados.

jdbc:mysql://ec2-54-233-172-214.sa-east-1.compute.amazonaws.com/digibee

String

SQL Statement

Instrução SQL a ser executada.

call proc_test(:?{in;var1},:?{in;var2},:?{out;result;VARCHAR},:?{out;now;VARCHAR})

String

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".

False

Booleano

Custom Connection Properties

Propriedades de conexão definidas pelo usuário e específicas do banco de dados.

N/A

String

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.

True

Booleano

Advanced

Configurações avançadas.

False

Booleano

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.

N/A

String

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).

  • Type: 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}

In Out

  • :?{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).

  • Type: 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}

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
}

Atualizado