2011-11-28 13 views
10

Estoy tratando de llamar a un procedimiento almacenado definido por el usuario desde una instrucción select y me da un error. Sin embargo, cuando llamo a un procedimiento de sistema funciona bien. ¿Hay alguna manera de llamar a un procedimiento definido por el usuario desde una declaración de selección? Esto es para MySQLLlamar a un procedimiento almacenado definido por el usuario desde la instrucción de selección mysql

SELECT ID, email FROM user PROCEDURE simpleproc(); 

dame un error ERROR 1106 (42000): Desconocido procedimiento 'simpleproc'

mysql> call simpleproc(); 

Query OK, 0 filas afectadas (0,21 seg)

donde como

SELECT ID, email FROM user PROCEDURE ANALYSE(); 

obras

+0

puedo ver cómo esto podría ser confuso, 'ANALYSE' procedimiento no es un procedimiento almacenado ver http://dev.mysql.com/doc/refman/5.5/en/procedure-analyse.html – KCD

Respuesta

-18

Puede llamar a procedimiento almacenado de instrucción de selección , Para llamar a un procedimiento debe utilizar siguiente sintaxis:

 
CALL stored_procedure_name (param1, param2, ....) 

Tales como, puede llamar al siguiente procedimiento:

DELIMITER // 

CREATE PROCEDURE `procedure1`(IN var1 INT) 
BEGIN 
    SELECT var1 + 2 AS result; 
END// 

como

CALL procedure1(10); 

Ver este sitio para referencia : http://net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/

+6

Sí - Así es como llamas a un procedimiento almacenado. Pero, ¿fue la declaración selectiva? –

12

No es posible seleccionar del procedimiento almacenado la forma en que escribió en su pregunta. ver This y This.

Cuestiones relacionadas