[英]Mysql Stored Procedure Issue
創建以下過程時,我會收到此錯誤消息:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
'd_query;
set d_result = execute stmt;
deallocate prepare stmt; ' at line 15
但是檢查后我看不到錯誤。 第15行涉及“如果d_query不為null則”。
這是真正的錯誤嗎? 還是不願意接受執行作為d_result的賦值?
任何幫助將不勝感激。
delimiter |
create procedure runtests()
begin
declare d_test_id char(20);
declare d_query text;
declare d_result text;
declare cur cursor for select test_id, query, result from datavalidator order by test_id;
open cur;
repeat
fetch cur into d_test_id, d_query, d_result;
if d_query is not null then
prepare stmt from d_query;
set d_result = execute stmt;
deallocate prepare stmt;
update datavalidator set result = d_result;
end if;
until done end repeat;
close cur;
end;
|
delimiter ; |
“請注意,文字字符串表達式或用戶變量是指定要准備的語句的唯一方法。”,來自本文檔 。
在嘗試進行准備之前,嘗試將值寫入用戶變量,例如:
set @q_sql = d_query;
...或直接在fetch
行中寫入用戶變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.