Todas as vezes que a função for executada, quero armazenar na tabela , os parâmetros e as raízes (ambas)

0 respostas
postgresql
Guilherme_Borges1
CREATE OR REPLACE FUNCTION EQ2(P_A INT, P_B INT, P_C INT)

RETURNS VARCHAR AS $$

DECLARE V_DELTA FLOAT; V_RAIZ INT;

BEGIN

V_DELTA := POWER(P_B, 2) - (4 * P_A * P_C);

IF (V_DELTA < 0) THEN

RAISE WARNING DELTA NEGATIVO;

RETURN -999;

END IF;

RAISE INFO DELTA %, V_DELTA;

RAISE INFO V1 = %, ( (P_B * (-1)) + SQRT(V_DELTA));

RAISE INFO V2 = %, (2 * P_A);

V_RAIZ := ( (P_B * (-1)) + SQRT(V_DELTA)) / (2 * P_A);

INSERT INTO RAIZES(X1) VALUES (V_RAIZ);

RETURN V_RAIZ;

END $$

LANGUAGE PLPGSQL

 tabela onde serão salvos os dados

CREATE TABLE RAIZES (

PARAMETRO_A INT NOT NULL,

PARAMETRO_B INT NOT NULL,

PARAMETRO_C INT NOT NULL,

X1 FLOAT NULL,

X2 FLOAT NULL

);

SELECT EQ2(1, -1, -30);  chamada da funcao
Criado 27 de março de 2020
Respostas 0
Participantes 1