بتاريخ: 26 مارس 201016 سنة comment_188311 السلام عليكم يا اخوان كيف ممكن كل سنة ارجع الرقم التسلسلي الى 1 في سند الادخال مثال1100001 يعني ذالك الرقم 11 السنة الحالية اما 00001 يعني رقم السند واحد المشكلة هي كيف ممكن اخلي ذالك الرقم في بداية سنة 2012 يسير الرقم 1200001 وهكذا ارجو الرد وشكرا للجميع . تقديم بلاغ
بتاريخ: 27 مارس 201016 سنة comment_188417 نفرض ان اسم الحقل للرقم المتسلسل هو seq نقوم بكتابة الكود التالي في pre_insert ليتم انشاء الرقم المتسلسل على هذا الأساس select max(substr(sysdate,-2) || substr(seq,3,length(seq)))+1 into :seq from students where substr(seq,1,2)=substr(sysdate,-2) تقديم بلاغ
بتاريخ: 27 مارس 201016 سنة كاتب الموضوع comment_188421 اخ جاد القرعان بارك الله فيك ولكن لم تنفع العملية شكرا على ردك تقديم بلاغ
بتاريخ: 27 مارس 201016 سنة comment_188423 ارجو تعديل الحل كالتالي select substr(sysdate,-2) || max(substr(seq,3,length(seq)))+1 into :seq from students where substr(seq,1,2)=substr(sysdate,-2) وان لم يعمل ارجوا توضيح المشكلة اين بالتحديد تقديم بلاغ
بتاريخ: 27 مارس 201016 سنة كاتب الموضوع comment_188429 السلام عليكم اول سطر بقلي تم الحفظ اما ثاني سطر بقول record has been already inserted تقديم بلاغ
بتاريخ: 27 مارس 201016 سنة comment_188462 جربه هيك select substr(sysdate,-2) || nvl(max(substr(seq,3,length(seq))),0)+1 into :seq from students where substr(seq,1,2)=substr(sysdate,-2) تقديم بلاغ
بتاريخ: 28 مارس 201016 سنة كاتب الموضوع comment_188501 السلام عليكم . شكرا على الرد بس الكود مش راضي يزبط بقلي انو الحقل تم ادخل من قبل يعني لما اعمل ادخال بعمل من 101و102و103 الى 109 لما ادخل اللي وراه بقلي 101 تم ادخالة من قبل ارجو الحل وبارك الله فيكم تقديم بلاغ
بتاريخ: 28 مارس 201016 سنة comment_188507 السلام عليكمحاول مع هذا أيضا في pre insert select to_number(to_char(sysdate,'yy'))||ltrim(to_char(nvl(max(substr(seq,-5)),0)+1,'09999')) into :seq from students; موفق تقديم بلاغ
بتاريخ: 28 مارس 201016 سنة كاتب الموضوع comment_188541 الطريقة صحيحة ولاكن عندما اغير السنة بكمل على التسلسل القديم انا بدي اياه لما تتغير سنة جديدة يرجع الرقم مثلا الى 1100001 تقديم بلاغ
بتاريخ: 29 مارس 201016 سنة comment_188583 السلام عليكم ورحمة الله وبركاتهاخي الكريمقم بربط الكود السابق بالسنة الماليةايwhere to_number(to_char(dat,'YYYY')) = (to_number(to_char(sysdate,'YYYY'))) جزاك الله كل خير تقديم بلاغ
بتاريخ: 29 مارس 201016 سنة كاتب الموضوع comment_188587 السلام عليكم اخي الكريم بالنسبة للكود فهوة يعطي نفس النتيجة السابقة ولايغير اي شئ انا اريد انه عندما تتغيرالسنة يرجع الرقم الى واحد يعني في سنة 2012 يكون الرقم الاول مثل ذالك 12000001 ويكمل على ذلك الرقم شكرا لردودكم وبارك الله فيكم تقديم بلاغ
بتاريخ: 29 مارس 201016 سنة comment_188601 وعليكم السلام ورحمة اللهجرب هذا البلوك أيضا في pre insert DECLARE X varchar2(22); begin select ltrim(to_char(nvl(max(substr(seq,-5)),0)+1,'09999')) into x from students where substr(seq,1,2)=to_char(sysdate,'yy'); :seq:=to_number(to_char(sysdate,'yy'))||ltrim(x); end; وفقك الله تقديم بلاغ
بتاريخ: 29 مارس 201016 سنة كاتب الموضوع comment_188603 يا رجل اشهد بالله انك محترف بارك الله في امثالك زبط الكود مشكور تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.