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

بتاريخ:

يا شباب انا عندي فورمة فيها text

وفيه الارقام بهذه الصيغة ms. 0002, m.s 0000 , m.s 0001 وهكذا


اريد عمل زر عندما اضغط عليه يقوم بالعد للرقم الذي بعده


هل استطيع


ارجوووووووووووو الرد

عندما اصل للرقم 10 تكون الصيغة m.s 0010

يا شباب ارجوووووو المساعدة

بتاريخ:

الاخ الكريم
الموضوع ساهل ان شاء الله

select m.s||to_number(substr(column_name,2,length(column_name)))+1
from ur_table


بس كده
سلام

بتاريخ:

الاخ الكريم
معلش نسيت حاجه

select m.s||lpad(to_number(substr(column_name,2,length(column_name)))+1,4,0)
from ur_table


يا رب يكون هو ده المطلوب

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

جاء خطأ في m.s

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

لم افهم الكود قمت بتطبيقه ولم ينجح معي

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

اين الردوووود يا شباب

بتاريخ:

ممكن تبعت الفورمه لمعرفة نوع الحقل و فين بتعد ل10؟

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

لم انشئ الفورمة بعد

اريد رأيكم

بتاريخ:

ايه مواصفات الجدول اللى هتعد على اساسه ام مش موجود؟

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

الجدول مش موجود ولكن اريد ان اعمل عمود للارقام بالصيغة الموجودة في الاعلى

بتاريخ:

ممكن توضيج ايه الغرض من هذا الFUNCTION؟
وهل تريد العد اولا ويتم كتابة العد فى صورة ms.0000 مثلا ام ماذا

بتاريخ:

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

اخي الكريم

قم بتجربة الكود التالي

create table aa (aa varchar(10) );


insert into aa (aa)
select 'm.s' || lpad((nvl(max(substr(aa,4,4)),0)+1),4,'0')  from aa ;



SUBSTR ('column' \ 'expression1',m,n)



تستخدم لقطع جزء من عمود أو سلسلة بداية من الحرف رقم m وعدد الحروف المقطوعة هي n


LPAD ('column' \ 'expression1',n,'string')



تستخدم لضبط بيانات عمود أو سلسة لناحية اليمين وذلك بملء حرف معين من اليسار والحرف n لتحديد الطول بعد الضبط


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

بتاريخ:

انا عملت جدول اسمه TEST1 فيه حقلين كما يلى
T1 - NUMBER(10)
T2 - VARCHAR2(50)
وعملت الفورمه المرفقه
ياريت تغير امتداد الملف وتخليه RAR علشان تقدر تفتحه

TEST.TXT

بتاريخ:

السلام عليكم ورحمة الله وبركاته
إليك يا أخي العزيز بهذه الفكرة ويمكن أفكار الأخوان أفضل ولكن من باب تبادل المعرفة

create sequence my_serial_num;

create or replace function my_serial(serial# number)
return varchar2
is 
v_serial# varchar2(10);
begin select lpad(serial#,4,'0')
  into v_serial# from dual;
 return(v_serial#);
end;
/

show errors

select my_serial(my_serial_num.nextval)
from dual;

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

لقد جربت هذا الكود واشتغل ولكن لايقوم بالزياده لا ادري لماذا

select 'm.s' || lpad((nvl(max(substr(tno,4,4)),0)+1),4,'0') from t



ارجووووووووووو المساعدة المشكلة انه كل ما تعيد الكود لا يقوم بالزيادة ويعطيك نفس القيمة كل مرة

بتاريخ:

سؤال سريع ... هل ترغب في تنفيذ هذه العملية من داخل قاعدة البيانات أم من داخل الديفيلوبار نفسة ؟؟؟؟

لو كان من داخل قاعدة البيانات فيمكنك إنشاء Trigger علي مستوي الجدول وتجلب أكبر قيمة مدرجة في هذا الحقل ، ومن ثم تضيف عليها الرقم ( 1 ) ، تم تعيد تنسيق القيمة المرتبة كما تشاء ، وإليك الطريقة :

Create Table Emp
(
  Emp_Code	VarChar2(20),
  Emp_Name	VarChar2(50),
  Constraint PK_Emp Primary Key(Emp_Code)
)
/

Create Or Replace Trigger TRG_Emp Before Insert On Emp 
For Each Row
Begin
  Select 'm.s ' || To_Char(NVL(To_Number(SubStr(Emp_Code,5)),0) + 1,'0000')
  Into :New.Emp_Code
  From Emp;
End;
/




أما إذا كنت ترغب في إجراء ترقيم تلقائي للحقل من داخل الديفيلوبار فعليك بحدث PRE-INSERT علي مستوي بلوك البيانات بحيث أن هذا الحدث لا ينفذ إلا أثناء عملية الإدراج فقط لا غير Insert Record ، وذلك فور تنفيذ جملة Commit_Form ، علي المثال السابق ، أدرج جملة الإستعلام الموضحة أعلاة بهذا الحدث كما يلي :

Select 'm.s ' || To_Char(NVL(To_Number(SubStr(Emp_Code,5)),0) + 1,'0000')
Into :New.Emp_Code
From Emp;






جرب وعرفني النتيجة ، بس جرب علي نفس المثال المدرج ، أدرج جدول يدعي Emp وأخبرني


بالتوفيق إن شاء الله



شكراً

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

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

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

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

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

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.