Ir para conteúdo
Fórum Script Brasil
  • 0

Variáveis dinâmicas em stored procedures


cay0

Pergunta

Boa tarde,

Estou criando uma SP no MySQL com 7 parâmetros.

Gostari de saber se no mysql é possível declarar uma varíavel e irmos incrementando valores a ela.

Por exemplo, vejam a sp abaixo:

DELIMITER $$
CREATE PROCEDURE SP_USUARIO(IN NOM_USUARIO VARCHAR(200), IN COD_ESTADO INT, IN NUM_CPFCNPJ VARCHAR(14), IN COD_UF INT, IN COD_CIDADE INT, IN COD_BAIRRO INT, IN DAT_CADASTRO DATETIME)
BEGIN
    IF ((LENGTH(NOM_USUARIO) = 0) AND (COD_ESTADO <> 0) AND (LENGTH(NUM_CPFCNPJ) = 0) AND (COD_UF <> 0) AND (COD_CIDADE <> 0) AND (COD_BAIRRO <> 0) AND (DAT_CADASTRO <> '01-01-0001')) THEN
        SELECT CD_USUARIO, CD_AGENCIA, NU_BANCO, NM_BANCO, NM_AGENCIA, 
        CD_ESTADO_CIVIL, NM_ESTADO_CIVIL, CD_SEXO, NM_SEXO, CD_TIPO_USUARIO, 
        NM_TIPO_USUARIO, CD_BAIRRO, NM_BAIRRO, CD_CIDADE, NM_CIDADE, CD_UF, NM_UF, DC_UF, 
        CD_ESTADO, DC_LOGIN, DC_SENHA, NM_USUARIO, NM_FANTASIA, DC_EMAIL, DC_ENDERECO, 
        DC_COMPLEMENTO, DT_NASCIMENTO, NU_TELEFONE, NU_CELULAR, NU_CPFCNPJ, NU_RG, 
        NU_INSC_ESTAD, NU_INSC_MUNICIP, NU_CEP, NU_FAX, NU_CONTA, DC_HOME_PAGE, 
        DC_OBSERVACAO, DT_CADASTRO, HR_CADASTRO
        FROM SGC.VW_USUARIO;
ELSE IF (LENGTH(NOM_USUARIO) <> 0) AND (COD_ESTADO <> 0) AND (LENGTH(NUM_CPFCNPJ) = 0) AND (COD_UF <> 0) AND (COD_CIDADE <> 0) AND (COD_BAIRRO <> 0) AND (DAT_CADASTRO <> '01-01-0001')) THEN
.
.
.
ELSE IF ((LENGTH(NOM_USUARIO) = 0) AND (COD_ESTADO = 0) AND (LENGTH(NUM_CPFCNPJ) = 0) AND (COD_UF <> 0) AND (COD_CIDADE <> 0) AND (COD_BAIRRO <> 0) AND (DAT_CADASTRO <> '01-01-0001')) THEN
.
.
.
pra não precisar de fazer esses milhares de IFs, como posso declarar uma variável no mysql onde eu incremente esta variável com IFs para cada valor do parâmetro? exemplo:
var whereclause 
if (paramater1 <> null) 
whereclause += ' COD_USER = ' + parameter 1 
if (paramater2 <> null) 
whereclause += ' COD_USER = ' + parameter 2

Agradço a todos pela atenção.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi, 'cay0'

Use

DECLARE <minhavariavel> <tipodavariavel> [DEFAULT <x>]

Onde:

DECLARE é a cláusula de declaração da variável

<minhavariavel> é o nome da variável que quero usar

<tipodavariavel> é o tipo da variável (INTEGER, VARCHAR, etc)

DEFAULT é a cláusula opcional para inicialização automática da variável no momento de sua criação e

<x> é o valor de inicialização da variável.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...