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

مساعد في عمل جدول


salahocp

Recommended Posts

استخدم خاصية البحث لتجد أكثر مما تريد ..

اليك هذه المشاركة السابقه من احد الزملاء بالمنتدى

سوف أعرض لك مثال معمول ال forms كيفية نقل البيانات من ORACLE إلى Excel
استعلام
DECLARE
    OUTFILE   TEXT_IO.FILE_TYPE;
BEGIN
    OUTFILE := TEXT_IO.FOPEN('C:\TEST.CSV','W');
FOR R IN (SELECT 
          EMP_NO,
                   EMP_A_NAME,
                   EMP_ID
                   FROM 
                   EMP "أنت تحدد الجدول الذي تريده"
                   
LOOP
TEXT_IO.PUT_LINE(OUTFILE,R.EMP_NO||';'||R.EMP_A_NAME||';'||R.EMP_ID);
END LOOP;     
TEXT_IO.FCLOSE(OUTFILE);
END;



طبعا يمكنك عمل العكس ولكن أولا عليك حفظ الملف بامتداد .csv (حيث يكون الفاصل بين حقل وآخر فاصلة منقوطه) ومن ثم تنفيذ الكود التالي :
كود
DECLARE
LINEBUF            VARCHAR2(1000);
OUT_FILE             TEXT_IO.FILE_TYPE;
V_COLOUMN_1      NUMBER(9); --طبعا بحسب عدد الحقول في جدولك ونوعها
V_COLOUMN_2        NUMBER(3);
V_COLOUMN_3       NUMBER(3);
V_COLOUMN_4     VARCHAR2(3);
BEGIN 
    
begin
    OUT_file := TEXT_IO.FOpen('C:\TEST.CSV','R');
    Exception when Others then
         Message('Error in Reading from file C:\TEST.CSV');
         RETURN;
end;
                         
--********** 
LOOP

BEGIN     
TEXT_IO.GET_LINE(OUT_FILE,LINEBUF);
EXCEPTION WHEN NO_DATA_FOUND THEN
EXIT;       
END;     
LINEBUF := LTRIM(LINEBUF);
V_COLOUMN_1    := SUBSTR(LINEBUF,1,9);
V_COLOUMN_2    := SUBSTR(LINEBUF,INSTR(LINEBUF,';',1,1)+1,                                   INSTR(LINEBUF,';',1,2)-INSTR(LINEBUF,';',1,1)-1 );
V_COLOUMN_3    := SUBSTR(LINEBUF,INSTR(LINEBUF,';',1,2)+1,                                   INSTR(LINEBUF,';',1,3)-INSTR(LINEBUF,';',1,2)-1 );
V_COLOUMN_4    := SUBSTR(LINEBUF,INSTR(LINEBUF,';',1,3)+1);                               
--********************** 
INSERT INTO TEST(COLOUMN_1,COLOUMN_2,COLOUMN_3,COLOUMN_4)
VALUES(V_COLOUMN_1,V_COLOUMN_2,V_COLOUMN_3,V_COLOUMN_4);
--**********************                                                            
END LOOP; 
COMMIT;
TEXT_IO.FClose(out_file); 

SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
EXCEPTION WHEN OTHERS THEN
   MESSAGE(SQLERRM);
   SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
   TEXT_IO.FClose(out_file);
END;

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

  • بعد 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.

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

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

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