"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية حل \"الخطأ 1329: لا توجد بيانات تم جلبها أو تحديدها أو معالجتها\" في إجراءات MySQL المخزنة؟

كيفية حل \"الخطأ 1329: لا توجد بيانات تم جلبها أو تحديدها أو معالجتها\" في إجراءات MySQL المخزنة؟

تم النشر بتاريخ 2024-11-04
تصفح:751

How to Resolve \

كيفية القضاء على "الخطأ 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