2011-11-28 16 views
10

Próbuję wywołać zdefiniowaną przez użytkownika procedurę przechowywaną z instrukcji select i daję mi błąd. Jednak kiedy zadzwonię do procedury systemowej, działa dobrze. Czy istnieje sposób wywoływania procedury zdefiniowanej przez użytkownika z instrukcji select. To jest dla mysqlWywołanie zdefiniowanej przez użytkownika procedury przechowywanej z instrukcji select mysql

SELECT ID, email FROM user PROCEDURE simpleproc(); 

dać mi ERROR 1106 (42000): Nieznany procedura 'simpleproc'

mysql> call simpleproc(); 

Query OK, 0 rows affected (0.21 sec)

gdzie jako

SELECT ID, email FROM user PROCEDURE ANALYSE(); 

działa

+0

Widzę, jak może to być mylące, "PROCEDURA ANALIZA" nie jest procedurą przechowywaną, patrz http://dev.mysql.com/doc/refman/5.5/en/procedure-analyse.html – KCD

Odpowiedz

-18

można wywołać procedurę przechowywaną z select aby wywołać procedurę należy użyć następującej składni:

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

Takie jak można wywołać następującą procedurę:

DELIMITER // 

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

jak

CALL procedure1(10); 

Proszę sprawdzić na tej stronie w celach informacyjnych : http://net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/

+6

Tak - W ten sposób wywołujesz procedurę przechowywaną. Ale czy było to stwierdzenie typu select? –

12

Nie można wybrać procedury przechowywanej w sposób opisany w pytaniu. patrz This i This.

Powiązane problemy