الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف ممكن كل سنة ارجع الرقم التسلسلي الى 1 في سند الادخال

Featured Replies

بتاريخ:

السلام عليكم يا اخوان كيف ممكن كل سنة ارجع الرقم التسلسلي الى 1 في سند الادخال مثال

1100001 يعني ذالك الرقم 11 السنة الحالية اما 00001 يعني رقم السند واحد المشكلة هي كيف ممكن اخلي ذالك الرقم في بداية سنة 2012 يسير الرقم 1200001 وهكذا ارجو الرد وشكرا للجميع .

بتاريخ:

نفرض ان اسم الحقل للرقم المتسلسل هو 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)

بتاريخ:
  • كاتب الموضوع

اخ جاد القرعان بارك الله فيك ولكن لم تنفع العملية شكرا على ردك

بتاريخ:

ارجو تعديل الحل كالتالي

select substr(sysdate,-2) || max(substr(seq,3,length(seq)))+1 into :seq from students
where substr(seq,1,2)=substr(sysdate,-2)



وان لم يعمل ارجوا توضيح المشكلة اين بالتحديد

بتاريخ:
  • كاتب الموضوع

السلام عليكم اول سطر بقلي تم الحفظ اما ثاني سطر بقول record has been already inserted

بتاريخ:

جربه هيك

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)

بتاريخ:
  • كاتب الموضوع

السلام عليكم . شكرا على الرد بس الكود مش راضي يزبط بقلي انو الحقل تم ادخل من قبل يعني لما اعمل ادخال بعمل من 101و102و103 الى 109 لما ادخل اللي وراه بقلي 101 تم ادخالة من قبل ارجو الحل وبارك الله فيكم

بتاريخ:

السلام عليكم
حاول مع هذا أيضا في pre insert

select to_number(to_char(sysdate,'yy'))||ltrim(to_char(nvl(max(substr(seq,-5)),0)+1,'09999'))  into :seq from students;



موفق

بتاريخ:
  • كاتب الموضوع

الطريقة صحيحة ولاكن عندما اغير السنة بكمل على التسلسل القديم انا بدي اياه لما تتغير سنة جديدة يرجع الرقم مثلا الى 1100001

بتاريخ:

السلام عليكم ورحمة الله وبركاته

اخي الكريم

قم بربط الكود السابق بالسنة المالية

اي

where to_number(to_char(dat,'YYYY')) = (to_number(to_char(sysdate,'YYYY')))

جزاك الله كل خير

بتاريخ:
  • كاتب الموضوع

السلام عليكم اخي الكريم بالنسبة للكود فهوة يعطي نفس النتيجة السابقة ولايغير اي شئ انا اريد انه عندما تتغيرالسنة يرجع الرقم الى واحد يعني في سنة 2012 يكون الرقم الاول مثل ذالك 12000001 ويكمل على ذلك الرقم شكرا لردودكم وبارك الله فيكم

بتاريخ:

وعليكم السلام ورحمة الله

جرب هذا البلوك أيضا في 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;



وفقك الله

بتاريخ:
  • كاتب الموضوع

يا رجل اشهد بالله انك محترف بارك الله في امثالك زبط الكود مشكور

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.