إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


3 رد (ردود) على هذا الموضوع

#1 الهدوء المزعج

الهدوء المزعج

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 01 September 2008 - 01:10 AM

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

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

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

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

و شكراً ...

#2 الهدوء المزعج

الهدوء المزعج

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 02 September 2008 - 04:34 AM

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

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

و شكراً ...

#3 ahmedbb

ahmedbb

    عضو مميز

  • الأعضــاء
  • 935 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 19 October 2011 - 10:24 AM

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

"وفوق كل ذى علم عليم"
برامج من انتاجى
شئون العاملين - الحضور و الانصراف - الاستحقاقات و الاجور
ادارة المراكز التدريبية - متابعة الانتاج - ادارة المستشفيات والعيادات - نظام ادارة المعارض ونقاط البيع
برنامج ادارة حركة السيارات - برنامج ادارة المكتبات - برنامج إدارة المدارس والمعاهد
من مواضيعى:
منادة المنيو من اى مكان http://www.araboug.o...nu&fromsearch=1
ايجاد اجمالى حقل معين فى فورم تابلور http://www.araboug.o...showtopic=50174
الوظيفة
Oracle Developer - Data Base Administrator - Programmer

Oracle Instructor

اسكاى بى ahmedoracle74
ahmedbb_work@hotmail
ahmedbb_work@yahoo

 

00201208042608

 

00201142271287
القاهرة - مصر




احمد محمود


#4 elgailani

elgailani

    عضو

  • الأعضــاء
  • 18 مشاركة
  • الاهتمامات:oracle developer, oracle dba

تاريخ المشاركة 08 November 2011 - 10:33 PM

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

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,jabba@thecompany.com,18
002,Simpson,Homer,382947382,homer@thecompany.com,20
003,Kent,Clark,082736194,superman@thecompany.com,5
004,Kid,Billy,928743627,billythkid@thecompany.com,9
005,Stranger,Perfect,389209831,nobody@thecompany.com,23
006,Zoidberg,Dr,094510283,crustacean@thecompany.com,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

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

ORACLE OCA

SUN SOLARIS SCSA

HP-UNIX CSA

THREE YEARS ORACLE DEVELOPER&DBA TEATCHER

FIVE YEARS APPLICATION DEVELOPMENT EXPERIENCE

KHARTOUM - 00249912374524 - elgailanimusa@yahoo.com