1
resposta

ARMAZENAR DADOS DE UMA FUNÇÃO EM UMA TABELA

BOM DIA, ESTOU COM UM PROBLEMA E GOSTARIA QUE ALGUEM ME AJUDASSE. PRECISO FAZER UMA FUNÇÃO QUE RETORNE UM VALOR EM CADA LINHA DA MINHA TABELA E QUE DEPOIS ALGUMA OUTRA PROCEDURE QUE REGISTRASSE ESSE RESULTADO EM UMA NOVA COLUNA DA MINHA TABELA. O PROBLEMA É QUE JÁ TENTEI DE TODO O JEITO E NÃO DA CERTO.

O JEITO QUE TENTEI FOI CRIAR UMA PROCEDURE COM UM CURSOR QUE CHAMASSE ESSA FUNÇÃO EM CADA LINHA RETORNANDO UM RESULTADO E GRAVANDO NA COLUNA, PORÉM ME PARECE QUE O CURSOR NÃO CONSEGUE FUNCIONAR SE CHAMAR FUNÇÕES.

POR GENTILEZA, QUAL O MEHOR JEITO DE EU GRAVAR UM CALCULO EM UMA NOVA COLUNA? POIS, SE O EXCEL FAZ ISSO COM FACILIDADE TEM QUE TER ALGUMA FORMA.

OBRIGADO.

1 resposta

Oi Thiago. Tudo bem por aí?

Desculpe por demorar a te responder! Espero que você tenha conseguido solucionar esse desafio.

Construir programas mais complexos pode ser super desafiador! Com muita prática e dedicação os desafios lógicos vão se tornando mais simples, e novos desafios surgem.

Para inserir o resultado de uma função em uma tabela, uma possibilidade é utilizar a instrução UPDATE na procedure para atualizar a tabela com os valores retornados pela função.

Primeiro, adicione a nova coluna à tabela, se ela ainda não existir:

    ALTER TABLE sua_tabela ADD COLUMN nova_coluna DECIMAL(10,2);

Então, a procedure com a atualização da coluna utilizando a função:

CREATE PROCEDURE registrar_resultado()
BEGIN
    -- Atualize a nova coluna com o resultado da função para cada linha da tabela
    UPDATE sua_tabela SET nova_coluna = calcular_valor_linha(coluna1, coluna2);
END //

Entretanto, fazer alterações diretamente no banco pode ser um tanto quanto arriscado. Uma possibilidade interessante é criar uma view que armazene esses dados.

Espero ter contribuído! Abraços.