سلسلة مقتبسة بالدولار منتهية: حل الأخطاء باستخدام الفواصل المنقوطة
في سياق إنشاء وظيفة PostgreSQL باستخدام Goose، تتناول هذه المقالة خطأً تمت مواجهته أثناء معالجة عبارة معقدة داخل نص الوظيفة. يشير الخطأ، الذي أبلغت عنه مكتبة pq، إلى أن السلسلة المقتبسة بالدولار تظل غير منتهية.
لحل هذه المشكلة، لاحظ أن العبارات المعقدة التي تحتوي على فواصل منقوطة تتطلب تعليقًا توضيحيًا باستخدام "-- goosestatementBegin" و"-- goose" التعليقات التوضيحية "StateEnd"، وفقًا لوثائق Goose. تساعد هذه التعليقات التوضيحية Goose في إدارة الفواصل المنقوطة المضمنة ضمن عبارات SQL، مما يمنع أخطاء libpq.
يؤدي تطبيق هذه التعليقات التوضيحية على نموذج التعليمات البرمجية المقدم إلى حل الخطأ:
CREATE OR REPLACE FUNCTION add_userlocation(user_id INT, location_id INT) RETURNS VOID AS $BODY$ -- goose StatementBegin BEGIN LOOP UPDATE userslocations SET count = count 1 WHERE userid = user_id AND locationid = location_id; IF found THEN RETURN; END IF; BEGIN INSERT INTO userslocations(userid,locationid, count) VALUES (user_id, location_id, 1); RETURN; EXCEPTION WHEN unique_violation THEN END; END LOOP; -- goose StatementEnd END; $BODY$ LANGUAGE plpgsql;
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3