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

بتاريخ:

لدي تيكست على الفورم يحتوي ارقام الموظفين من جدول الموظفين ويفصل بين كل رقم والتاني بفاصلة
مثال :
23;55;66;77;89;
وهكذا
اريد ان اخزن لكل رقم موجود في التيكست في جدول
يعني من خلال هذا المثال سيتم انشاء خمس ريكورد
كيف يمكنني ذلك

بتاريخ:

استخدم
substr
تقسم الكلمة الى عدة كلمات بالبحث عن الفاصلة
ثم اعمل لوب بعدد وجود الفاصلة واكتب جملة الانسرت

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

كيف ؟؟؟ وعندي عدد غير محدد من النتائج

بتاريخ:

k:=1;
while substr(word,1,instr(word,';')',k) is not null
loop
insert into values(substr(word,';',1,instr(word,';')',k) ;

k:=k+1;
end loop;


دى الفكرة وظبطها انت

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

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

اخي الكريم ولا فهمت شي معلش اشرحلي

بتاريخ:

احنا نحتاج الاول نقسم الكلمة الكبيرة اللى فيها فاصلات كتير الى عده كلمات صغيرة
بالبحث عن الفاصلة
ahmed;mohamed;adel
ناخد من اول حرف لحد الفاصلة تبقى احمد نعملها انسيرت
وبعدين k=2
فنجيب تانى كلمة وهى محمد نعملها انسيرت
وبعدين k تزيد تبقى 3
ونجيب تالت كلمة عادل ونعمل انسيرت
وبعدين نجيب رابع كلمة بعد الفاصلة تطلع فاضى فيخرج
على فكرة زود فى instr k
اعمل سيرش على عمل instr and substr
فالمنتدى وحتلاقى العملية سهلة

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

مش عارف اعمل الكود يا اخي مش زابط معي

بتاريخ:

مرحبا ماهر..كيفك ؟
بعذ اذن اخي asd202 للتعديل على الكود...
جرب وضعه على بروسيجر ونادي البروسيجر على زر وشوف النتيجه:

PROCEDURE AAA IS
K NUMBER;
BEGIN
 k:=1;
while substr(:BLK.UR_ITEM,1,instr(:BLK.UR_ITEM,';')',k) is not null
loop
insert into UR_TABLE values(substr(:BLK.UR_ITEM,';',1,instr(:BLK.UR_ITEM,';')',k);
commit;
k:=k+1;
end loop;

END;



بالتوفيق

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

while substr(:MESSAGES_NEW.send,1,instr(:MESSAGES_NEW.send,';'),k) is not null
wrong number of types of arguments in call to substr
يعطيني هذا الخطأ

بتاريخ:

هو انا مش عارف ده عشان موضوع الفورمة بتاعة المسجات ؟؟؟
انا رديت في الموضوع السابق بحل بسيط جداً ، انت ليه أصلا تاخد من التكست وانت عندك البيانات متقسمة جوه البلوك
وعلى العموم لو انت عايز تعمله من على التكست بسيطة
نفترض انك بتفصل بين الارقام بـ ;

بقى الكود هيكون كده

DECLARE 
V_WORD VARCHAR2(300) :='';
BEGIN FOR I IN 1..LENGTH(:YOUR_TEXT)+1
LOOP

IF SUBSTR(:YOUR_TEXT ,I,1) =';' OR I = LENGTH (:YOUR_TEXT)+1
   THEN 
    INSERT INTO YOUR_TABLE VALUES (V_WORD);
    V_WORD :='';
    
 ELSE 
    V_WORD :=V_WORD || SUBSTR(:YOUR_TEXT ,I,1) ;
 END IF ;
END LOOP ;
COMMIT ;
END ;


جرب وقولي

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

ما زبط الكود اخ عبدالله

بتاريخ:

ما زبط ليه ؟؟
انا جربت عندي وشغال ميه ميه
بيطلع ايرور ولا ايه بالظبط ؟؟

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

ما بيطلع ولا اشي ولا ايا خطأ

بتاريخ:

الكود سليم وتم تنفيذه بنجاح يا أخ ماهر
وشكرا ل asd202 , PALI.ORACLE, abdu1_far
على المشاركات الفعالة

وده تطبيق لفورمة بسيطة فيها الكود اللي كتبوه الاخوه مع اختلاف بسيط للتوضيح
الفورمة في المرفقات

code_form6i.rar

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

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

DECLARE
V_WORD VARCHAR2(300) :='';
BEGIN FOR I IN 1..LENGTH(:sent_to)+1
LOOP

IF SUBSTR(:sent_to ,I,1) =';' OR I = LENGTH (:sent_to)+1
THEN
Message(v_word);
INSERT INTO messages (SENT_BY,MESSAGE,READ_FLAG,MESSAGE_DATE, SENT_TO ,ID,MESSAGE_TITLE)
VALUES               (:SENT_BY,:MESSAGE,:READ_FLAG,:MESSAGE_DATE,V_WORD,msg_seq.nextval,:MESSAGE_TITL
E);

V_WORD :='';

ELSE
V_WORD :=V_WORD || SUBSTR(:sent_to ,I,1) ;
END IF ;
END LOOP ;
commit;
END ;





شكر للاخ العزيز ع قلبي كتير الاخ عبد الله
وشكر وتقدير للاخ الكبير احمد حبيب قلبي
وشكر للاخوان asd202 و Yasser-Khairalla...
ما بتقصرو

بتاريخ:

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

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

مشكور اخ عبد الله ولكن عندي ملاحظة بسيطة اكتشفتها الان وهي ان اول ريكورد يتم تخزينه لا يوجد به رقم موظف
لماذا ؟؟ يعني متلا ارسال رسالة الى ثلاثة موظفين يرسل الى اربعة ثلاثة موجودة ارقامهم والرابعة بدون رقم موظف ؟

بتاريخ:

بص هو انا مش عارف المشكلة فين
بس انا عندي شغال ومية ميه ، يعني بضيف 3 اسماء بينزل تحت في الداتا بيز 3 اسماء
ممكن تعمل بريتن اسكرين في الرن تايم .... بعد ما دخلت البيانات في التكست
وبعد كده تعمل بيرنت اسكرين للتريجر بتاع الزرار المسئول عن نقل البيانات للجدول ؟؟
ويارب اقدر افيدك ... لاني مش لاقي اي سبب للي انت بتقوله ، انا قاعدت ابحلق وارجع في الكود مرة تانية اني ألاقي حاجة مش لاقي
منتظرك ياباشا

بتاريخ:

تقريبا هو انا عرفت المشكلة فين
لان الكود الاول اللي كان بينزل في التكست كان بيحط ; في الاول قبل اول كلمة
فاحنا لما كنا بنجي نعمل انسرت في الجدول كنا بنقطع الكلمة اللي قبلها ;
وبما ان اول حاجة في التكست كانت ; يبقى الكلمة اللي قبلها NULL
وبالتالي كان بينزل ريكورد زيادة برقم موظف NULL
على العموم انا رديت في الموضوع التاني لما ، تغير الكود بالكود اللي انا كتبته في الموضوع التاني ان شاء الله المشكلة هتختفي
انا مكنتش بتظهر معايا لاني كنت بجرب على التود مش على الفورمة

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

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

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

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

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

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.