我已經在MySQL中創建一個存儲過程,如:MySQL存儲過程
DELIMITER //
CREATE PROCEDURE test()
BEGIN
SELECT * FROM buyers;
END //
DELIMITER ;
,但是當我把它用,
call test()
它返回一個錯誤說:
#1312 - 程序ticketninja.test1無法返回給定上下文中的結果集
我已經在MySQL中創建一個存儲過程,如:MySQL存儲過程
DELIMITER //
CREATE PROCEDURE test()
BEGIN
SELECT * FROM buyers;
END //
DELIMITER ;
,但是當我把它用,
call test()
它返回一個錯誤說:
#1312 - 程序ticketninja.test1無法返回給定上下文中的結果集
返回結果集可以存儲procedcure內但不是內存儲的功能中使用的語句。這種禁止包括沒有INTO var_list子句的SELECT語句以及其他語句,如SHOW,EXPLAIN和CHECK TABLE。對於在函數定義時可以確定返回結果集的語句,不允許從函數錯誤返回結果集(ER_SP_NO_RETSET)。對於僅在運行時才能確定以返回結果集的語句,PROCEDURE%s無法返回發生給定上下文中的結果集錯誤(ER_SP_BADSELECT)。
也許你需要使用臨時表,就像這個例子:
確保您的代碼(或客戶端庫)調用mysql_set_server_options()
啓用MYSQL_OPTION_MULTI_STATEMENTS_ON
。
它給出了一個錯誤: #1172 - 結果包含多個行 – Kalx 2010-06-28 12:39:39
更新了我的帖子;鏈接的資源包含您可能可以調整的完整示例。 – miku 2010-06-28 12:51:51