بتاريخ: 3 سبتمبر 200421 سنة comment_11963 قمت بعمل استعلام على جدول بحيث يعرض المنتجات التى تم بيعها فى نفس التاريخ وكان صحيحا ولكن وجد خطأ وهو انه اذا كان هناك منتجين او اكثر تم بيعهم فى نفس التاريخ فان الاستعلام لا يعمل ولكن يعمل عندما يكون منتج واحد فقط تام بيعه فى التاريخ المذكورزوالاستعلام كالآتىbegin select all p_id, product, no, price, s_n, p_date into :product.p_id, :product.product, :product.no, :product.price, :product.s_n, :product.p_date from product where product.p_date = :Dd;end;فما حل هذه المشكلةشكرا تقديم بلاغ
بتاريخ: 4 سبتمبر 200421 سنة comment_12016 السلام عليكم طبيعي انه لا يعمل عند وجود منتج تم بيعه في نفس اليوم حيث سيظهر اكسبشن too_many_rows لان جملة السيليكت يتم اختيارها في فورمز فاريبلز و الحل ان تضع شروط اخري لضمان ان ينتج ريكورد و احد فقط عن الاستعلام اما اذا كنت تريد مثلا ان تعرض المنتجات التي تم بيعها في هذا اليوم للاستفسار مثلا فيمكن استخدام بلوك من نوع from clause لعرض المنتجات التي تم بيعها في يوم معين بالتوفيق تقديم بلاغ
بتاريخ: 8 سبتمبر 200421 سنة comment_12331 طبيعي ان يكون هناك خطأ اذا كان اكثر من منتج بنفس التاريخلتفادي الخطأ استخدم Cursorاو تعالج too_many_rows في ال exception تقديم بلاغ
بتاريخ: 9 سبتمبر 200421 سنة comment_12364 السلام عليكم ورحمة الله قد يفيدك استخدام أمر الdistinct لعدم تكرار البيانات المتشابهه لنفس الحقل SQL> select distinct job from emp; JOB --------- ANALYST CLERK MANAGER PRESIDENT SALESMAN تقديم بلاغ
بتاريخ: 15 سبتمبر 200421 سنة comment_12672 you can use cursor as follow:[declarecursor items is select p_id, product, no, price, s_n, p_date from product where product.p_date = :my_date;begin open items; fetch items into :product.p_id, :product.product, :product.no, :product.price, :product.s_n, :product.p_date ; if items%notfound then message('There is no items in that date ' || to_char(:my_date)); end if; close items;end;]this will bring the first record even if there is many records in the select statement تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.