簡體   English   中英

Mysql存儲過程問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM