بتاريخ: 20 يوليو 200619 سنة comment_74788 سوف أقوم بهذا الموضوع بشرح عملية تحميل البيانات (Loading) من نوع LOB بإستخدام SQL* Loader وباستخدام Externel table:أولاً : بإستخدام SQL* Loaderهناك عدة طرق لتحميل البيانات من نوع LOB باستخدام SQL* Loader ولكني سوف أركز على طريقة LOBFILE :قم بتحميل الملفات المرفقه:أول ملفين من نوع WORD والملف الثالث والرابع من نوع TEXTالبيانات الأصلية ها هي : 1,one,01-JAN-2006,clob_test1.txt,blob_test1.doc 2,two,02-JAN-2006,clob_test2.txt,blob_test2.doc الآن نقوم بخلق جدول جديد أسمه مثلاً lob_tab وكما يلي: CREATE TABLE lob_tab ( number_content NUMBER(10), varchar2_content VARCHAR2(100), date_content DATE, clob_content CLOB, blob_content BLOB ); ومن ثم نقوم بتعريف SQL* Loader ونسميه مثلاً lob_test.ctl لتحميل البيانات وكما يلي : LOAD DATA INFILE 'lob_test_data.txt' INTO TABLE lob_tab FIELDS TERMINATED BY ',' (number_content CHAR(10), varchar2_content CHAR(100), date_content DATE "DD-MON-YYYY" ":date_content", clob_filename FILLER CHAR(100), clob_content LOBFILE(clob_filename) TERMINATED BY EOF, blob_filename FILLER CHAR(100), blob_content LOBFILE(blob_filename) TERMINATED BY EOF) الآن نفذ الأمر الأتي من خلال Command :- sqlldr userid=test/test@db10g control=lob_test.ctl log=lob_test.log bad=lob_test.bad والخطوة الأخيرة هي الأستعلام عن البيانات التي تم تحميلها وكما يلي : COLUMN varchar2_content FORMAT A16 COLUMN date_content FORMAT A12 COLUMN clob_content FORMAT A20 SELECT number_content, varchar2_content, TO_CHAR(date_content, 'DD-MON-YYYY') AS date_content, clob_content, DBMS_LOB.getlength(blob_content) AS blob_length FROM lob_tab; NUMBER_CONTENT VARCHAR2_CONTENT DATE_CONTENT CLOB_CONTENT BLOB_LENGTH -------------- ---------------- ------------ -------------------- ----------- 1 one 01-JAN-2006 This is a clob test1 24064 2 two 02-JAN-2006 This is a clob test2 24064 2 rows selected. وهكذا تم استخدام SQL* Loader لتحميل البيانات من نوع LOBوالمرة القادمة أن شاء الله سوف نستخدم نفس الملفات ولكن بإستخدام External Table إن أصابت فمن الله وأن أخطأت فمن نفسي والشيطان blob_test1.doc blob_test2.doc clob_test1.txt clob_test2.txt تم تعديل 20 يوليو 200619 سنة بواسطة omar-alreyati تقديم بلاغ
بتاريخ: 27 يوليو 200619 سنة كاتب الموضوع comment_75222 ثايناً : بإستخدام External table في هذا الدرس سوف يتم استخدام External table لقراءة البيانات من نوع CLOB و BLOBالخطوة الاولى: هي عمل Directory وكما في المثال الأتي : CREATE OR REPLACE DIRECTORY temp_dir AS '/tmp/'; الخطوة الثانية : حمل الملفات المرفقة في الموضوع السابق (بإستخدام SQL* Loader)البيانات الأصلية كما في يلي : 1,one,01-JAN-2006,clob_test1.txt,blob_test1.doc 2,two,02-JAN-2006,clob_test2.txt,blob_test2.doc الخطوة الثالثة : عمل جدول لسحب هذه البيانات وكما في المثال الاتي : CREATE TABLE lob_tab ( number_content NUMBER(10), varchar2_content VARCHAR2(100), date_content DATE, clob_content CLOB, blob_content BLOB ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY temp_dir ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE BADFILE temp_dir:'lob_tab_%a_%p.bad' LOGFILE temp_dir:'lob_tab_%a_%p.log' FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL ( number_content CHAR(10), varchar2_content CHAR(100), date_content CHAR(11) DATE_FORMAT DATE MASK "DD-MON-YYYY", clob_filename CHAR(100), blob_filename CHAR(100) ) COLUMN TRANSFORMS (clob_content FROM LOBFILE (clob_filename) FROM (temp_dir) CLOB, blob_content FROM LOBFILE (blob_filename) FROM (temp_dir) BLOB) ) LOCATION ('lob_test_data.txt') ) PARALLEL 2 REJECT LIMIT UNLIMITED / ملاحظة : COLUMN TRANSFORMS يوضح كيف يتم نقل من نوع BLOB و CLOBالخطوة الأخيرة : التأكد من نقل البيانات الى الجدول (lob_tab ) بشكل صحيح وكما يلي : COLUMN varchar2_content FORMAT A16 COLUMN date_content FORMAT A12 COLUMN clob_content FORMAT A20 SELECT number_content, varchar2_content, TO_CHAR(date_content, 'DD-MON-YYYY') AS date_content, clob_content, DBMS_LOB.getlength(blob_content) AS blob_length FROM lob_tab; NUMBER_CONTENT VARCHAR2_CONTENT DATE_CONTENT CLOB_CONTENT BLOB_LENGTH -------------- ---------------- ------------ -------------------- ----------- 1 one 01-JAN-2006 This is a clob test1 24064 2 two 02-JAN-2006 This is a clob test2 24064 2 rows selected. وهكذا تم نقل البيانات من نوع BLOB و CLOB باستخدام الطريقيتن External Table & SQL* Loaderأتمنى أن أكون قد أوصلت الفكرة المرجوة من هذا الموضوع فإن أصابت فمن الله وإن أخطأت فمن نفسي ومن الشيطان .وشكراً للجميع. تقديم بلاغ
بتاريخ: 7 سبتمبر 200619 سنة comment_78137 الأخ الفاضلجزاك الله كل الخير عن كل مساعدة تقدمها للأخوانكمل جميلك لوسمحتكيف أحمل بيانات من ملف أكسيل (بإستخدام SQL* Loader)مع خالص الشكر مقدماً[email protected] تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.