2011-11-28 24 views
10

Tôi đang cố gắng gọi cho người dùng được xác định thủ tục lưu sẵn từ một câu lệnh chọn và nó cho tôi một lỗi. Tuy nhiên khi tôi gọi một thủ tục hệ thống nó hoạt động tốt. Có cách nào để gọi một quy trình do người dùng xác định từ một câu lệnh chọn không. Này là dành cho mysqlGọi cho người dùng đã xác định lưu trữcác yêu cầu từ câu lệnh select mysql

SELECT ID, email FROM user PROCEDURE simpleproc(); 

cho tôi một lỗi ERROR 1106 (42000): Unknown thủ tục 'simpleproc'

mysql> call simpleproc(); 

Query OK, 0 hàng bị ảnh hưởng (0,21 giây)

nơi như

SELECT ID, email FROM user PROCEDURE ANALYSE(); 

hoạt động

+0

Tôi có thể thấy điều này có thể gây nhầm lẫn, 'PROCEDURE ANALYSE' không phải là thủ tục được lưu trữ, xem http://dev.mysql.com/doc/refman/5.5/en/procedure-analyse.html – KCD

Trả lời

-18

Bạn có thể gọi thủ tục lưu trữ từ lựa chọn công bố , Để gọi một thủ tục bạn phải sử dụng sau cú pháp:

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

Chẳng hạn như, bạn có thể CALL sau thủ tục:

DELIMITER // 

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

như

CALL procedure1(10); 

Kiểm tra trang web này để tham khảo : http://net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/

+6

Có - Đây là cách bạn gọi một thủ tục được lưu trữ. Nhưng đó là câu lệnh chọn? –

12

Không thể chọn từ thủ tục được lưu trữ theo cách bạn đã viết trong câu hỏi của mình. xem ThisThis.

Các vấn đề liên quan