كيفية القضاء على "الخطأ 1329: لم يتم جلب بيانات أو تحديدها أو معالجتها"
عند تنفيذ الإجراءات المخزنة التي لا تُرجع القيم، قد يواجه المستخدمون "الخطأ 1329: لا توجد بيانات - لم يتم جلب أي صفوف أو تحديدها أو معالجتها." لمعالجة هذه المشكلة، اتبع الخطوات التالية:
خذ في الاعتبار الإجراء المخزن التالي:
CREATE PROCEDURE `testing_proc`() READS SQL DATA BEGIN DECLARE done INT DEFAULT 0; DECLARE l_name VARCHAR(20); DECLARE my_cur CURSOR FOR SELECT name FROM customer_tbl; OPEN my_cur; my_cur_loop: LOOP FETCH my_cur INTO l_name; IF done = 1 THEN LEAVE my_cur_loop; END IF; INSERT INTO names_tbl VALUES(l_name); END LOOP my_cur_loop; CLOSE my_cur; END
ينبع الخطأ من سلوك MySQL المتمثل في عرض تحذير حتى عند معالجته. لمنع حدوث ذلك، قم بتضمين السطر التالي في نهاية الإجراء:
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
بدلاً من ذلك، أضف عبارة "وهمية" تتضمن جدولًا ويتم تنفيذه بنجاح بعد الحلقة، على سبيل المثال:
SELECT name INTO l_name FROM customer_tbl LIMIT 1;
سيؤدي هذا إلى مسح التحذير بسبب خطأ/سلوك غريب في MySQL (المشار إليه في http: //dev.mysql.com/doc/refman/5.5/en/show-warnings.html).
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3