2016-05-31 3 views
-2

Я нашел эту процедуру здесь, в базе данных мантизма, и вам нужно запустить ее прямо в банк, чтобы увидеть, какие результаты она принесет, но не знает, как выполнить эту процедуру, каким образом понять это ? Как вы выполняете эту процедуру?ошибка при запуске процедуры mysql в phpmyadmin

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 - Неверное количество аргументов для PROCEDURE testlink.PR_SEL_RELAT_PRODUTIVIDADE; Ожидается, 4, получили 0

ответ

1

Вы выполнить процедуру с помощью CALL (documentation). С вашей процедуры вы выполняете его с помощью:

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

Например:

CALL PR_SEL_RELAT_PRODUTIVIDADE(3, 4, 'foo', 5); 
Смежные вопросы