Paulo Roberto Paulo Roberto - 6 months ago 13
MySQL Question

error when running procedure mysql in phpmyadmin

I found this procedure here in the mantis database and need to run it straight to the bank to see what results it will bring , but do not know how to perform this procedure , which way to understand this ? How do you perform this procedure specifies?

DROP PROCEDURE IF EXISTS testlink.PR_SEL_RELAT_PRODUTIVIDADE;
CREATE PROCEDURE testlink.`PR_SEL_RELAT_PRODUTIVIDADE`(
idProjetoTestLink INT,
idPlanoTeste INT,
DataReferencia VARCHAR(10),
idProjetoMantis INT)
BEGIN
DECLARE vDataReferencia DATE;
DECLARE vIdQuery char(36);

/* Carrega os dias Testes na tabela Tempor?ria */
SELECT FN_SELECIONA_CASO_TESTES(idProjetoTestLink, idPlanoTeste)
INTO vIdQuery;

SELECT DATE(DataReferencia)
INTO vDataReferencia;

SELECT a.username,
a.realname,
sum(a.falha) falha,
sum(a.passou) passou,
SUM(a.bloqueado) bloqueado,
sum(a.EmExecucao) EmExecucao,
sum(a.DefeitosFechados) DefeitosFechados,
sum(a.DefeitosReabertos) DefeitosReabertos
FROM (SELECT X.LOGIN_TESTER username,
X.NOME_TESTER realname,
CASE STATUS WHEN 'f' THEN 1 ELSE 0 END Falha,
CASE STATUS WHEN 'p' THEN 1 ELSE 0 END Passou,
CASE STATUS WHEN 'b' THEN 1 ELSE 0 END Bloqueado,
0 EmExecucao,
0 DefeitosFechados,
0 DefeitosReabertos
FROM testlink.tmp_result_report X
WHERE X.ID_QUERY = vIdQuery
AND X.DATA_EXECUCAO = vDataReferencia
UNION ALL
SELECT X.LOGIN_TESTER username,
X.NOME_TESTER realname,
0 Falha,
0 Passou,
0 Bloqueado,
CASE STATUS WHEN 'r' THEN 1 ELSE 0 END EmExecucao,
0 DefeitosFechados,
0 DefeitosReabertos
FROM testlink.tmp_result_report X
WHERE X.ID_QUERY = vIdQuery
UNION ALL
SELECT user.username,
user.realname,
0 Falha,
0 Passou,
0 Bloqueado,
0 EmExecucao,
CASE WHEN bug.resolution <> 30 THEN 1 ELSE 0 END
DefeitosFechados,
CASE WHEN bug.resolution = 30 THEN 1 ELSE 0 END
DefeitosReabertos
FROM mantis.mantis_bug_table bug,
mantis.mantis_category_table categ,
mantis.mantis_user_table user
WHERE bug.project_id = idProjetoMantis
AND bug.category_id = categ.id
AND bug.status = 90 -- Fechado
AND bug.resolution <> 10 -- Aberto
AND date(FROM_UNIXTIME(bug.last_updated)) = vDataReferencia
AND bug.reporter_id = user.id) a
WHERE a.username IS NOT NULL
GROUP BY a.username;
END;



#1318 - Incorrect number of arguments for PROCEDURE testlink.PR_SEL_RELAT_PRODUTIVIDADE; expected 4, got 0

Answer

You execute a procedure using CALL (documentation). With your procedure, you execute it using:

CALL PR_SEL_RELAT_PRODUTIVIDADE([int], [int], [string], [int]);

For example:

CALL PR_SEL_RELAT_PRODUTIVIDADE(3, 4, 'foo', 5);
Comments