الانتقال إلى المحتوى
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.

طلب المساعدة في كتابة Cursor زيادة المتسلسل تلقائيا واضافة السنة اليه

Featured Replies

بتاريخ:

قمت بعمل pre insert trigger  على  البلوك الاساسي وذلك للقيام بالعد اوتوماتيكيا  واريد ان يبدا cursor from 1 at the begening of the year  ,واضافة السنة اليه على شكل yyyy ارجو المساعدة واعطائي الحل الصحيح

الكود الذي كتبته على الشكل التالي :

declare
 cursor test1 is select 'error' from table1
 where id_test = (select max(id_test) from table1);
 x varchar2(5);
 y number;
 z number;

begin

 open test1;
 fetch test1 into x;
 select to_number(to_char(sysdate,'yyyy')) into y from dual;
 select max(to_number(to_char(test_date,'yyyy'))) into z from table1;
 if (not test1%found) then
  if y > z then
    :table1.id_test :=1;
  else
      select max(id_test||z) +1 into :id_test from table1  
       where to_number(to_char(sysdate,'yyyy')) = z;
   end if;
 end if;
 close test1
end;
بتاريخ:

السلام عليكم

 

BEGIN
   SELECT NVL (MAX (id_test), 0) + 1 || TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy'))
     INTO :blk_1.id_test
     FROM table1
    WHERE YEAR = TO_NUMBER (TO_CHAR (SYSDATE, 'yyyy'));
EXCEPTION
   WHEN NO_DATA_FOUND
   THEN
      :blk_1.id_test := 1;
END;
بتاريخ:
  • كاتب الموضوع

لقد قمت باضافة الكود ولكن المشكلة ان الرقم اصبح يتضاعف بشكل كبير وليس 12014 . 22014 ............... مثلا

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

شكرا على الرد لقد قمت بكتابة الكود  ولكن المشكلة في YEAR  لذا اضطررت الى كتابتها بشكل اخر

والكود على الشكل التالي

declare
 
begin

  SELECT NVL (MAX (id_test), 0) + 1|| TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy'))
     INTO :TABLE1.id_test
     FROM tABLE1 WHERE 
TO_NUMBER(TO_CHAR(tABLE1.Test_dATe, 'yyyy')) = TO_NUMBER(TO_CHAR (SYSDATE, 'yyyy'));---- THE WORD YEAR WAS ENCOUYTERED A BAD VARIABLE
EXCEPTION
   WHEN NO_DATA_FOUND
   THEN
      :id_test := 1
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.