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

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

Featured Replies

بتاريخ:

السلام عليكم


انا عندي حقل وهو رمز معين 1/109 بمعنى ان الرقم 109 ثابت والرقم والرقم 1 هو التسلسل بمعنى يزيد




كتبت هذه الجملة ولكن بلا فائدة


SELECT '109/'||rpad(nvl(max(substr(kd,5,2)),0)+1,1,'0') into :kd from nT;





ارجوووووو المساعدة

بتاريخ:

السلام عليكم
انت بامكانك اولا احضار اكبر قيمة ثم اضافة المطقع لها:

Select Max(Kd) 
 Into :Kd 
 From Nt;
 
New_Value := '109/'||:Kd;

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

ممكن توضح اكثر



لانني جربت الكود وما نفع




شكرا

بتاريخ:

هو المفروض kd ده اسم كولم؟؟؟

تم تعديل بواسطة abdu1_far

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

نعم kd اسم column

بتاريخ:

DECLARE
V_MAXNUM NUMBER(10);
BEGIN
SELECT NVL(MAX(SUBSTR(KD,INSTR(KD,'/')+1)),0)+1
INTO V_MAXNUM
FROM NT;
:KD := '109/'||V_MAXNUM;
END;

بتاريخ:

هو بغض النظر عن اجابات اخوانا الاعضاء .... انهم يجعلوا الكود على مرحلتين
انا مش شايف اي مشكلة في كودك وبيجيب داتا صح لما جربته على جدول تاني عندي
ممكن تقولنا ايه المشكلة بالظبط اللي بتطلع معاك ؟؟؟

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

يا اخي


لقد قمت بتجربة الكود ولكن يصل الرقم الى 10 وبعد ذلك يكتب 10 ولا يزيد عن رقم 10



ارجوووووووووو المساعدة

بتاريخ:

Cause you are useing "rpad" for '0'

بتاريخ:

and in case if you removed the 'rpad' you'll have to divide your code as stated before

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

يا اخي لقد قمت بتجربة نفس الكود الذي كتبته


DECLARE 
V_MAXNUM NUMBER(10);
BEGIN
SELECT NVL(MAX(SUBSTR(KD,INSTR(KD,'/')+1)),0)+1
INTO V_MAXNUM
FROM NT;
:KD := '109/'||V_MAXNUM;
END;





ولكن بصل الى الرقم 10 ولا يزيد واذا زاد كتب 10 مرة اخرى

بتاريخ:

REPLACE THIS LINE IN SELECT STATEMENT:
NVL(MAX(TO_NUMBER(SUBSTR(KD,INSTR(KD,'/')+1))),0)+1

In this statement I turned the cut number to number as your database feild is char

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

المشكلة لما اضع قبل الكود create_record

العد يقف عند الرقم 10


create_record;
DECLARE 
V_MAXNUM NUMBER(10);
BEGIN
SELECT NVL(MAX(SUBSTR(n,INSTR(n,'/')+1)),0)+1
INTO V_MAXNUM
FROM nn;
:n := '107/'||V_MAXNUM;
END;
commit;




اما اذاكان بدون create_record

يكمل العد بدون مشاكل


لا ادري مالسبب

بتاريخ:

use TO_NUMBER as in the previous select

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

المشكلة انحلت عندما غيرت نوع الcolumn الى number جات معي


بس المشكلة انا اريدها varchar2 مالحل

بتاريخ:

ما تغيرش نوع الكولوم ان اقصد ضيف to_number function بعد substr function كما بالكود الاخير الذي ارسلته

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

ضفت to_number ولكن بلا فائدة



ارجووو تجربة الكود


create_record;
DECLARE 
V_MAXNUM NUMBER(10);
BEGIN
SELECT NVL(MAX(SUBSTR(n,INSTR(n,'/')+1)),0)+1
INTO V_MAXNUM
FROM nn;
:n := '107/'||V_MAXNUM;
END;
commit;



وستلاحظون انه يقف عند الرقم 10

بتاريخ:

See the attached form

TEST.zip

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

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

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

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

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

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.