بتاريخ: 6 مارس 200818 سنة comment_124012 السلام عليكم ورحمة الله وبركاتهأرجو المساعده من الأخوه الكرامهل يوجد سكربت واحد ممكن أستعمله يقوم بتفريغ كل الجداول واللي عددها 25 جدول مثلا من البيانات بدون تعب ؟؟؟أرجو الأفاده , هذا السؤال مهم جدا أرجو الردمع فائق الشكر والتقدير تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة comment_124015 السلام عليكم .يرجى التوضيح اكثر . وين بدك تستعمل السكريبت .اما اذا على sql بامكانك كتابة الجملة التالية تعطيك جملة delete لكل الملفات الي عندك او بتحدد الملفات بجملة whereيبقى عليك تنفيذ الجمل الناتجة من select SELECT ' DELETE FROM '||TNAME ||' ;' FROM TAB WHERE TABTYPE = 'TABLE'; DELETE FROM A ; DELETE FROM B ; DELETE FROM C; تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة comment_124019 معلش تحكيلي انت وين بدك تستعمل ال سكريبت ؟وجملة ال select الي مكتوبة ابتعطيك جمل جاهزه لعملية مسح الملفات ما عليك سوى تنفيذها. تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة كاتب الموضوع comment_124020 عفوا سؤالي هو :لدي قاعدة بيانات على الــ sql plusتحتوي العديد من الجداول تتراوح بين 50 - 60 جدول ويوجد فيها بياناتفهل يوجد ما أكتبه داخل الــ sql يقوم بمسح كل البيانات من كل الجداول مباشرة بدون أن أذهب لكل جدول وأعمل delete فهذا يستغرق وقت طويلمع جزيل الشكر تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة كاتب الموضوع comment_124022 الأخ Hani_Sالــ Query اللي كتبتهه مش شغاله ؟؟؟SELECT ' DELETE FROM '||TNAME ||' ;' FROM TAB WHERE TABTYPE = 'TABLE'; not workأرجو التأكد منها تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة comment_124029 السلام عليكم .الجملة تعطيك جمل الحذف لكل الملفات راح يظهر عندك الناتج delete from اسم الملف .انت خد الناتج الي هو عباره عن جمل الحذف لكل الملفات ونفذه مره وحده .والرجاء اذا في غلط في الجمله ابعتلي ال error والجمله جربتها وما في مشكله .واحتفظ بهاي الجمل الناتجه في سكريبت ونفذه في اي وقت ابتحتاج اله. تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة كاتب الموضوع comment_124030 عزيزي أخ هاني شكرا لجوابكأني كتبت الجمله نفسها مطابقه 100% بدو ن تعديل أو أي شئوالجواب كان:no rows selected تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة كاتب الموضوع comment_124033 الأخ Hani_Sلقد تم تنفيذ الــ Query بنجاح وظهرت عبارات المسح ولكن يوجد شئ مهم أنه نافذة الــ SQL*Plus لا تستوعب كل الأسطر لكي أعمل نسخ ومن ثم لصق؟؟؟فهل توجد طريقه لأظهار الأسطر جميعا في هذه الواجهه لكي أنسخها ومن ثم ألصقها ؟؟؟؟؟ تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة comment_124035 عزيزي .بالماوس اضغط وانزل لتحت كلهم راح يتعلموا واعمل نسخ . تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة كاتب الموضوع comment_124036 شكرا جزيلا أخ هاني على ردك الكريمطيب ألا توجد طريق للسق هذا الــ Query على أيعاز الــ Delete لعمل مسح لكل بيانات الجداول مباشرة بدون نسخ ولسق ؟؟؟؟مع فائق أحترامي وتقديريأخوك عباس تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة comment_124049 يمكنك عمل procedure كهذا :- CREATE OR REPLACE PROCEDURE delete_all_data IS v_statement VARCHAR2 (200); BEGIN FOR i IN (SELECT * FROM user_tables) LOOP v_statement := 'delete ' || i.table_name ; EXECUTE IMMEDIATE v_statement; END LOOP; commit; END; / و من ثم تنفيذه هكذا :- exec delete_all_data لكن المشكلة أخى العزيز فى ال constraints التى تحكم الربط بين الجداول و بالأخص ال ( Primary Keys , Foreign Keys ) فهى التى ستعطل كودى و كود الأخ Hani_Sفأذا حد لاقى حل لهذه المشكلة ياريت يبقى يقولنا عليها فى هذا الموضوع الشيق ..... و انا عن نفسى بدور على النت علشان ألاقى حل لهذه المشكلة .have a nice day تقديم بلاغ
بتاريخ: 6 مارس 200818 سنة comment_124080 أخوانى .... لقد وجدت الحل الأمثل للمشكلة ...... و هو اننا يجب اولاً ان نقوم ب disable لكل ال constraints التى تمثل ال foreign key و من ثم القيام بعملية حذف البيانات من الجداول.هذا هو الكود كامل ممكن تعمله نسخ و لصق او تحميله من المرفقات مع تمنياتى بالتوفيق للجميع :P CREATE OR REPLACE PROCEDURE dis_fk_cons IS BEGIN FOR i IN (SELECT * FROM user_constraints WHERE constraint_type = 'R' AND status = 'ENABLED') LOOP EXECUTE IMMEDIATE 'alter table ' || i.TABLE_NAME || ' disable constraint ' || i.constraint_name; END LOOP; END; / exec dis_fk_cons; CREATE OR REPLACE PROCEDURE delete_all_data IS v_statement VARCHAR2(200); BEGIN FOR i IN (SELECT * FROM user_tables) LOOP v_statement := 'delete ' || i.TABLE_NAME; EXECUTE IMMEDIATE v_statement; END LOOP; COMMIT; END; / exec delete_all_data; -- Now all data in all tables has been deleted forever . لو عاوز تجربها .... فممكن تجربها على اسكيمة تانية مش بتستخدمها ذى ال oe ، و ذلك من خلال دخولك على اسكيمة ال system و كتابة التالى :- alter user oe account unlock ; grant connect , resource to oe ; alter user oe identified by oe ; conn oe/oe و لما تدخل ابقى طبق الكود اللى مرفق بالمرفقات.فى سلامة الله delete_schema.txt تم تعديل 6 مارس 200818 سنة بواسطة hanyfreedom تقديم بلاغ
بتاريخ: 9 مارس 200818 سنة كاتب الموضوع comment_124188 الأخ HanyFreedamشكرا جزيلا لك وبارك الله فيك عسى الله أن يسهل لك أمورك ويوفقك في دنياك واخرك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.