Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Não reconhece o símbolo de recebe ( :=)

Quando vou rodar a function estou recebendo a seguinte mensagem:

ERROR: faltando declaração de tipo de dado em ou próximo a ":=" LINE 4: primeira_variaval := primeira_variavel * 2; ^ SQL state: 42601 Character: 96

E quando rodo o select, recebo a seguinte mensagem:

ERROR: function primeira_pl() does not exist LINE 1: SELECT primeira_pl(); ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. SQL state: 42883 Character: 8

Meu código está assim:

CREATE OR REPLACE FUNCTION primeira_pl() RETURNS 
        INTEGER AS $$
    DECLARE
        primeira_variaval := primeira_variavel * 2;
    BEGIN 
        RETURN primeira_variavel;
    END
$$ LANGUAGE plpgsql;

SELECT primeira_pl();

Obrigado pela ajuda

2 respostas
solução!

Olá, Ricardo, tudo bem?

No bloco do DECLARE, você realiza a declaração da variável:

  DECLARE
      primeira_variaval INTEGER DEFAULT 3;

E no bloco do BEGIN, é onde a variável primeira_variaval recebe o valor.

    BEGIN 
       primeira_variaval := primeira_variavel * 2;

O comando completo fica da seguinte forma:

CREATE OR REPLACE FUNCTION primeira_pl() RETURNS INTEGER AS $$
    DECLARE
      primeira_variaval INTEGER DEFAULT 3;
    BEGIN 
       primeira_variaval := primeira_variavel * 2;

        RETURN primeira_variavel;
    END
$$ LANGUAGE plpgsql;
SELECT primeira_pl();

Espero ter ajudado e bons estudos!

Obrigado!

Agora que eu vi um erro de digitação. Valeu!