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

بتاريخ:

اخوني الاعزاء السلام عليكم جميعاً
هذا هو اسكربت لعرض امر انشاء الجدول مع الـConstraint الخاص به , وهذا ينفع في حالة انشاء عدة جداول في داتابيس معينه ونت تريد ان يكون لديك text file يحوي كل اوامر انشاء الجدوال حتى تتمكن من تنفيذها في اي داتابيس اخرى .
عند تنفيذ هذا السكربت في الـsql * plus سوف يسألك عن اسم الجدول الذي تريد ان تحصل على امر انشاءه وعند اعطائه اسم الجدول سوف يعطيك امر انشاء ذلك الجدول

UNDEFINE TABLE_NAME;
-- CREATE THE TABLE SCRIPT
SELECT 
  'CREATE TABLE ' 
 || T.table_name
 || ' ( '
FROM USER_TABLES T
WHERE T.table_name=UPPER('&&table_name')
UNION ALL
SELECT * FROM 
(
SELECT 
 DECODE(ROWNUM, 1, '   ', '  , ') 
 ||   T.column_name
 || '   '
 || T.data_type
 || DECODE (t.data_type ,'NUMBER',DECODE(T.data_scale,'','', '(' || T.data_precision || ',' || T.data_scale || ')'),'VARCHAR2','('||t.data_length||')','DATE','')
 || DECODE (T.NULLABLE,'N',' NOT NULL')
FROM USER_TAB_COLUMNS T
WHERE T.table_name=UPPER('&&table_name')
ORDER BY T.COLUMN_ID
)
UNION ALL
SELECT ' ); ' FROM DUAL
UNION ALL
SELECT 
    'ALTER TABLE '  || T.table_name 
    ||' ADD CONSTRAINT ' 
    || T.constraint_name
    || Decode
    (
       t.constraint_type,'P',' PRIMARY KEY ' , 'R', ' FOREIGN KEY ' 
      || '('
      ||(SELECT CT.column_name FROM USER_CONS_COLUMNS CT WHERE CT.constraint_name=T.r_constraint_name )  
      || ') 
     '||' REFERENCES '
      || (SELECT TABLE_NAME  FROM USER_CONS_COLUMNS UCT WHERE UCT.constraint_name=T.r_constraint_name) 
    )
    || (SELECT   ' ('|| c.column_name ||') ' From user_cons_columns c  where c.constraint_name=t.constraint_name )
    || '; '
AS "CREATION SCRIPT"
FROM  user_constraints T
WHERE table_name=UPPER('&&table_name')
/




مثال :
افرض ان هذا السكربت موجود داخل ملف اسمه table_Creation.sql
يتم تنفيذه كالاتي
1- ادخل الـsql * plus
2- اكتب c:\table_Creation.sql@
3- سوف يسألك عن اسم الجدول ادخل EMP
4- سوف يكون الناتج كألاتي

CREATE TABLE EMP (
  EMPNO   NUMBER(4,0) NOT NULL
 , ENAME   VARCHAR2(10)
 , JOB   VARCHAR2(9)
 , MGR   NUMBER(4,0)
 , HIREDATE   DATE
 , SAL   NUMBER(7,2)
 , COMM   NUMBER(7,2)
 , DEPTNO   NUMBER(2,0)
);
ALTER TABLE EMP ADD CONSTRAINT PK_EMP PRIMARY KEY  (EMPNO);
ALTER TABLE EMP ADD CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO)
      REFERENCES DEPT (DEPTNO);


اما اذا اعطيناه الجدول Dept فسوف يعطي الناتج الاتي

CREATE TABLE DEPT (
  DEPTNO   NUMBER(2,0) NOT NULL
 , DNAME   VARCHAR2(14)
 , LOC   VARCHAR2(13)
);
ALTER TABLE DEPT ADD CONSTRAINT PK_DEPT PRIMARY KEY  (DEPTNO);


وبهذه الطريقه تستطيع ان تعمل ملف يحوي اوامر انشاء كل الجداول الموجدوه في الداتابيس , بحيث تتمكن من تنفيذ هذا الملف في اي داتابيس اخرى لكي تحصل على نفس الجدال .

ملاحظه :
هذا اسكربت من اجتهادي ويمكن ان يكون به بعض العيوب او الاخطى , لذلك اتمنى من الاخوه المشاركه بالتعديل اذا كان هناك اي خطى
كما احب ان انوه ان هذا الاسكربت يمكن ان يطور بحيث نضعه في procedure لكي يعطينى ملف بكل الجداول والـpackages والـTriggers وغيرها من الـdatabase objects .



تم إرفاق الملف مرة أخري
إدارة المنتدي

TABLE_CREATION.TXT

تم تعديل بواسطة هانى سند

بتاريخ:

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

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

بتاريخ:

كل رد بتقوله يا ستاذ / خالد جميل بجد :)

بتاريخ:

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

بتاريخ:

مشكور اخ خالد

بتاريخ:

جزاك الله خيرا على هذه المعلومات القيمة

بتاريخ:

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

  • بعد 2 سنة...
بتاريخ:

فتح الله عليك ونفع بك

  • بعد 6 شهور...
بتاريخ:

اكثر من راااااااااااااااااااااائع

بارك الله فيك

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

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

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

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

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

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.