الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Create table If Not Exist

مغلق
بدأه طالب حيران في 24 سبتمبر 2006 · 7 رد · 1,343 مشاهدة · في قسم إدارة قاعدة البيانات أوراكل
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أستخدم أوراكل 9i

وعادي لما أفتح الوورك شيت بأضيف جداول

لكن أبغى أسوي مثل الشرط اللي فوق إنه إذا الجدول مو موجود أساسا أنشئه أما إذا هو موجود خلاص

ما أبغاه يطلع إيرور

هذا الكلام اللي في العنوان الظاهر إنه في mySQL أو SQL server لكن أنا أبغى SQL حاف اللي أستخدمها في الأوراكل

فهل فيه طريقة أو لا ؟

شكراً

علما بأنه تم البحث في المنتدى على ما أريد عدة مرات فلم أجد ما يشفي غليلي

#2

من المفترض وضع هذا السؤال في هذا القسم

/index.php?showforum=178

أرجو النقل إن أمكن

#3

أخ حسام ما يفيد أعمل هيك

select * from user_objects where object_type='TABLE' and object_name ='Table1';

تم تعديل هذه المشاركة بواسطة المتميز في 28 سبتمبر 2006 في 14:31

460.gif

#4

كلامك صحيح أخي المتميز فتعليمة Sql التي كتبتها تعطي أسماء الجدوال الموجود حالياً لدى المستخدم و لكن الأخ السائل يريد بتعليمة واحدة تحقيق ما يريد ، و هذا ما يحصل عندما تقوم بتسليم ملف SQL الخاص بإنشاء لبنى في القاعدة لصاحب البرنامج أو الشركة التي تعمل بها ..

#5

شكرا اخي حسام للتوضيح

460.gif

#6

بسم الله الرحمن الرحيم

الحل وأدعيلي بالتوفيق والسداد .

DECLARE
TCOUNT NUMBER(1);
TBLNAME  varchar2(80):= 'TEST1';
BEGIN
SELECT COUNT(*) INTO TCOUNT FROM TAB WHERE TNAME =TBLNAME;
IF TCOUNT = 0 THEN
   DBMS_OUTPUT.PUT_LINE('										  ');
   DBMS_OUTPUT.PUT_LINE('******************************************');
   DBMS_OUTPUT.PUT_LINE('										  ');
   DBMS_OUTPUT.PUT_LINE('Table :'||TBLNAME||', Creation in progress...');
   EXECUTE IMMEDIATE 'CREATE TABLE TEST1(TESTCOL1 NUMBER)';
ELSE
   DBMS_OUTPUT.PUT_LINE('										  ');
   DBMS_OUTPUT.PUT_LINE('..........................................');
   DBMS_OUTPUT.PUT_LINE('										  ');
   DBMS_OUTPUT.PUT_LINE('Table :'||TBLNAME||', is allready exist..!');
END IF;
END;
/

إبراهيم بخش ...

تم تعديل هذه المشاركة بواسطة إبراهيم بخش في 13 مايو 2007 في 19:22

#8

أخي الكريم إبراهيم : لقد فهمت طلب الأخ بطريقة خاطئة فهو لا يريد إجرائية لتحيق ذلك و إنما يريد تعليمة sql ..

كملاحظة على الكود الذي قمت بكتابته : لا داعي لإحضار عدد الجدوال بل يكفي :

select 'd' into v_dummy from user_tables where table_name='test1'; 
DBMS_OUTPUT.PUT_LINE('Table :'||TBLNAME||', is allready exist..!');
execption 
 when no_Data_found  then 
 DBMS_OUTPUT.PUT_LINE('										  ');
   DBMS_OUTPUT.PUT_LINE('******************************************');
   DBMS_OUTPUT.PUT_LINE('										  ');
   DBMS_OUTPUT.PUT_LINE('Table :'||TBLNAME||', Creation in progress...');
   EXECUTE IMMEDIATE 'CREATE TABLE TEST1(TESTCOL1 NUMBER)';

فقط للتعقيب و المشاركة

هذا الموضوع مغلق.

مواضيع مشابهة