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

External Tables ... !? I Didn't Understand It ...!

Featured Replies

بتاريخ:

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

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

هلء سؤالي - كمبتدئ- عن ال external tables و هيه من مواضيع ال SQL Fundamentals 2 و محكي عنها بإستطراد بال DBA ...
و عن الفرق بينها و بين data files و عن مفهوم أو أهمية ال APLs و السواقات المحمله و سواقات ضخ البيانات ....

يعني بالفعل هالموضوع ما فهمتو أبدا من كتب ال ORACLE university بئى اللي بيشرحلنا هالمصطلحات و أهميتها بيكون فضل علينا ...
و أنا أسف هالثقله اللي عم سببها إلكون ...

و شكراً ...

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

ممممممممم
ليش ما حدا رد ...؟:P

طيب ازا ممكن كتاب أو موقع يشرح هالمسأله بس غير ال ORACLE University أو بالعربي ...... :P

و شكراً ...

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

مرحبا باهل سوريا
جداول من نوع external tables
هى جداول غير مسموح التعديل فيها لانها تستورد البيانات من ملفات من خارج الاوراكل مثل الاكسيل او ملفات النصوص
وهناك طرق خاصة لانشاءها
اما الجداول الطبيعية data files فهى جداول الاوراكل نفسها وبالطبع يمكن التعديل فيها سواء فى الداتا او فى التصميم
معكم ولكم نتواصل

  • بعد 3 أسابيع...
بتاريخ:

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

External tables:






هي تكملة لما يسمي sql loader وهي تتيح لنا قراءة ملفات خارجية flat files إلي داخل قاعدة البيانات وهي طريقة فقط لتحويل البيانات من هذه الملفات الي داخل الداتابيز والعكس.

لا يمكن اجراء عمليات insert,update,delete علي هذه الجداول كما هو الحال مع الجداول العادية normal tables . ولكن يمكن استعمال جملة select لقراءة البيانات منها.

قبل أوراكل 10 جي كانت هذه الجداول للقراءة فقط ولكن منذ اوراكل 10 جي يمكنك الكتابة فيها والقراءة منها .
sql*loader معروفة لدينا حيث نستطيع من خلالها قراءة ملفات مسطحة نصية، او اكسل الي جداول الداتابيز ولكن الجداول الخارجية external tables تقدم خدمات إضافية فوق التي تقدمها sql*loader.

مثال:





إذا كنت كل يوم تتلقي تقرير علي شكل ملف اكسل .csv فايل يمكن تحميل هذا الملف بواسطة sql*loadr يومياً، ولكن بدلاً عن ذلك يمكن إنشاء جدول خارجي external table وقراءة البيانات إلي داخل قاعدة البيانات مباشرة بواسطة select …. Insert يعني قراءة من الجدول الخارجي والكتابة مباشرة في الجدول الداخلي.
شرح المثال:

نفرض ان ملف الاكسل يسمي file1.csv

وهذه هي محتويات الملف

001,Hutt,Jabba,896743856,[email protected],18
002,Simpson,Homer,382947382,[email protected],20
003,Kent,Clark,082736194,[email protected],5
004,Kid,Billy,928743627,[email protected],9
005,Stranger,Perfect,389209831,[email protected],23
006,Zoidberg,Dr,094510283,[email protected],1

لاحظ الفصل بين كل عمود والثاني بواسطة فاصلة
قم بإنشاء مجلد علي الفايل سستم مثلاُ المجلد إسمه dir1
وتم إنشاءه علي قرس d:\

يكون مسار الملف D:\dri1\file1.csv

قم بإنشاء هذا المجلد علي مستوي الداتابيز

Sql> create directory dir1 as ‘d:\dir1

يجب نسخ الملف يدوياً إلي هذا المسار حتي تتمكن اوراكل من قراءته.
اخر خطوة هي تكوين الجدول الخارجي external table
بواسطة جملة

Create table …… organization external

في هذه الجملة نوضح اسماء الاعمدة وفي الجزء الاخير بعد organization external نوضح لاوراكل كيف تقوم بترجمة محتويات الملف.
سوف نسمي الجدول الخارجي external1

SQL> create table external1


( empl_id varchar2(3),
last_name varchar2(50),
first_name varchar2(50),
ssn varchar2(9),
email_addr varchar2(100),
years_of_service number(2,0)
)
organization external
( default directory dir1
access parameters
( records delimited by newline
fields terminated by ','
)
location ('file1.csv')
);







سوف يتم تكوين الجدول الخارجي حتي ولو لم يكن الملف موجود في هذه اللحظة لان اوراكل لا تقوم بفحص الباراميترس التي مررتها لها في هذه الخطوة انما تقوم فقط بإنشاء الجدول.

الآن الجملة الحاسمة التي تجبر اوراكل علي قراءة هذه البيانات

Select * from external1

هنا تقوم اوراكل بفحص البيانات وإذا كان هناك خطأ في الملف سوف تعرض رسالة خطأ ولن يتم عرض البيانات. وسوف تقول بإنشاء ملف في نفس المجلد يوضح الاخطاء والبيانات التي تم تحميلها والبيانات التي لم يتم تحميلها.
يمكن بعد ذلك تحميل هذه البيانات إلي جدول داخلي بواسطة الامر

Create table table2 as select * from external1;





لنتاكد

Select * from table2;





الان لتحميل هذه البيانات يوميا

Insert into table2 select * from external1;






تاكد انه لا يوجد سطر فاضي في نهاية الملف لا تضغط علي مفتاح انتر لان اوراكل ستترجمه علي انه سجل جديد وسيعطينا رسالة خطأ.

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

SQL> create table export_empl_info


organization external
( type oracle_datapump
default directory dir1
location (‘file2.dmp’) )
as select * from table2






لاحظ الاختلافات
تحديل النوع

oracle_datapump

استخدمنا نفس المجلد اي ان الملف سيتم انشاءه في نفس المكان ولكن غيرنا الاسم إلي File2.dmp

لاحظ امتداد الملف Dmp اي انه ليس ملف اكسل
لاحظ اننا لم نحدد تنسيق البيانات في الملف
ولاحظ ان اعمدة الملف ستكون نفس الاعمدة والبيانات في الجدول الداخلي الذي حددناه في النهاية
Table2

مع تحياتي
ارجو منكم الدعاء

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

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

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

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

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

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.