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

التعامل مع Text File


Programmer_15

Recommended Posts

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

أخواني الأعزاء
كيف يمكنني التعامل من خلال الأوراكل مع ملف نصي Text File من حيث القراءة والتقسيم إلى حقول لوضعها في الجداول والتعامل معها

وشكراً جزيلاً لكم

رابط هذا التعليق
شارك

يمكن ياخي الكريم تجريب التالي:

[size=2]PROCEDURE GET_DATA_FROM_text_FILE(P_FILE_NAME VARCHAR2) IS
 RECORDS_file   Text_IO.File_Type;
 var1 varchar2(1000);  -- or any length
BEGIN
 
 RECORDS_file := Text_IO.Fopen(P_FILE_NAME, 'r'); 
 LOOP 
Text_IO.Get_Line(RECORDS_file, RECORD);
var1 := SUBSTR(par1,par2,par3);
                             --par1 : The string or line
              --par2 : The start point for red
              --par3 : The number of charcter for red

               /* insert th var 1 on table */
       
               Text_IO.New_Line;    
 END LOOP;
 Text_IO.Fclose(RECORDS_FILE); 
EXCEPTION 
 WHEN OTHERS THEN
     Text_IO.Fclose(RECORDS_FILE); 
END;[quote][/size]

تم تعديل بواسطة ابو صالح
رابط هذا التعليق
شارك

بأمكانك استخدام sql*loader لتحميل من ملف نصي ،وهذا مثال بسيط.

الملف النصي

emp.txt

--empno,ename,sal,comm
--
7369,SMITH,800,0
7499,ALLEN,1600,300
7521,WARD,1250,500
7566,JONES,2975,0
7654,MARTIN,1250,1400
7698,BLAKE,2850,0
7782,CLARK,2450,0
7788,SCOTT,3000,0                     
7839,KING,5000,0                    
7844,TURNER,1500,0           
7876,ADAMS,1100,0               
7900,JAMES,950,0                   
7902,FORD,3000,0                   
7934,MILLER,1300,0



control file


LOAD DATA
  INFILE 'c:\emp.txt'
  INTO TABLE emp2
  FIELDS TERMINATED BY ","

(empno term,ename,sal,comm)



execute sql*loader

C:\>sqlldr userid=scott/tiger control='c:\cfile.txt'

SQL*Loader: Release 10.1.0.2.0 - Production on Wed Jun 1 18:34:45 2005

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

Commit point reached - logical record count 15
Commit point reached - logical record count 16




SQL> select * from emp2;

    EMPNO ENAME             SAL       COMM
---------- ---------- ---------- ----------
     7369 SMITH             800          0
     7499 ALLEN            1600        300
     7521 WARD             1250        500
     7566 JONES            2975          0
     7654 MARTIN           1250       1400
     7698 BLAKE            2850          0
     7782 CLARK            2450          0
     7788 SCOTT            3000          0
     7839 KING             5000          0
     7844 TURNER           1500          0
     7876 ADAMS            1100          0
     7900 JAMES             950          0
     7902 FORD             3000          0
     7934 MILLER           1300          0

14 rows selected.

رابط هذا التعليق
شارك

  • بعد 2 شهور...

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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