sublyer 0 Denunciar post Postado Março 30, 2007 Bom eu tenho uma váriavel dentro da minha stored procedure que é do tipo VARCHAR(4000) que então deve ser executada, imagino que a pergunta seja, porque é necessário adicionar o comando sql nestá varíavel?, está necessidade se faz necessário pois recebo um parâmetro IN CRITERIO VARCHAR(2000) que significa o critério do meu comando SQLDentro da stored procedure uso desta formaBEGINDECLARE comandoSQL VARCHAR(4000);SET comadoSQL = CONCAT("select * from tabela where codigo is not null ", CRITERIO);EXECUTE comandoSQL;ENDMas quando eu rodo ele me informa essa mensagemUnknown prepared statement handler (comandoSQL) given to EXECUTEO que seria este erro? está maneira está correta de estrutura dentro da stored procedure?Obrigado por quem puder me ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Abril 1, 2007 O protótipo do EXECUTE, é: EXECUTE stmt_name [USING @var_name [, @var_name] ...]Esse stmt_name se refere ao que você definiu com: PREPARE stmt_name FROM preparable_stmtMais informações: http://dev.mysql.com/doc/refman/5.0/en/sqlps.html Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Abril 2, 2007 Não entendi, como eu ficaria neste exemplo que eu mostrei?Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Abril 2, 2007 Ja consegui, coloquei assim e funcionou... vlwwwwBEGIN SET @comandoSQL = CONCAT('select * from tabela where codigo is not null ',CRITERIO); PREPARE stmt FROM @comandoSQL; EXECUTE stmt;END Compartilhar este post Link para o post Compartilhar em outros sites