بتاريخ: 7 مايو 200818 سنة comment_128224 يا شباب انا عندي فورمة فيها text وفيه الارقام بهذه الصيغة ms. 0002, m.s 0000 , m.s 0001 وهكذااريد عمل زر عندما اضغط عليه يقوم بالعد للرقم الذي بعده هل استطيع ارجوووووووووووو الردعندما اصل للرقم 10 تكون الصيغة m.s 0010 يا شباب ارجوووووو المساعدة تقديم بلاغ
بتاريخ: 7 مايو 200818 سنة comment_128238 الاخ الكريمالموضوع ساهل ان شاء الله select m.s||to_number(substr(column_name,2,length(column_name)))+1 from ur_table بس كدهسلام تقديم بلاغ
بتاريخ: 7 مايو 200818 سنة comment_128239 الاخ الكريم معلش نسيت حاجه select m.s||lpad(to_number(substr(column_name,2,length(column_name)))+1,4,0) from ur_table يا رب يكون هو ده المطلوب تقديم بلاغ
بتاريخ: 7 مايو 200818 سنة كاتب الموضوع comment_128246 لم افهم الكود قمت بتطبيقه ولم ينجح معي تقديم بلاغ
بتاريخ: 8 مايو 200818 سنة comment_128271 ممكن تبعت الفورمه لمعرفة نوع الحقل و فين بتعد ل10؟ تقديم بلاغ
بتاريخ: 8 مايو 200818 سنة comment_128277 ايه مواصفات الجدول اللى هتعد على اساسه ام مش موجود؟ تقديم بلاغ
بتاريخ: 8 مايو 200818 سنة كاتب الموضوع comment_128286 الجدول مش موجود ولكن اريد ان اعمل عمود للارقام بالصيغة الموجودة في الاعلى تقديم بلاغ
بتاريخ: 8 مايو 200818 سنة comment_128288 ممكن توضيج ايه الغرض من هذا الFUNCTION؟وهل تريد العد اولا ويتم كتابة العد فى صورة ms.0000 مثلا ام ماذا تقديم بلاغ
بتاريخ: 8 مايو 200818 سنة comment_128292 السلام عليكم ورحمة الله وبركاتهاخي الكريمقم بتجربة الكود التالي 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 لتحديد الطول بعد الضبطجزاك الله كل خير تقديم بلاغ
بتاريخ: 8 مايو 200818 سنة comment_128293 انا عملت جدول اسمه TEST1 فيه حقلين كما يلى T1 - NUMBER(10) T2 - VARCHAR2(50)وعملت الفورمه المرفقهياريت تغير امتداد الملف وتخليه RAR علشان تقدر تفتحه TEST.TXT تقديم بلاغ
بتاريخ: 8 مايو 200818 سنة comment_128304 السلام عليكم ورحمة الله وبركاتهإليك يا أخي العزيز بهذه الفكرة ويمكن أفكار الأخوان أفضل ولكن من باب تبادل المعرفة 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; تقديم بلاغ
بتاريخ: 10 مايو 200818 سنة كاتب الموضوع comment_128388 لقد جربت هذا الكود واشتغل ولكن لايقوم بالزياده لا ادري لماذاselect 'm.s' || lpad((nvl(max(substr(tno,4,4)),0)+1),4,'0') from t ارجووووووووووو المساعدة المشكلة انه كل ما تعيد الكود لا يقوم بالزيادة ويعطيك نفس القيمة كل مرة تقديم بلاغ
بتاريخ: 10 مايو 200818 سنة comment_128417 سؤال سريع ... هل ترغب في تنفيذ هذه العملية من داخل قاعدة البيانات أم من داخل الديفيلوبار نفسة ؟؟؟؟لو كان من داخل قاعدة البيانات فيمكنك إنشاء 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 وأخبرنيبالتوفيق إن شاء اللهشكراً تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.