بتاريخ: 13 مايو 20196 سنة comment_298458 السلام عليكم ورحمة الله وبركاتهياريت لو ممكن حد يفيدنى ازاى اعمل استيراد للبيانات من ملف اكسيل الى أوراكل باستخدام forms 11g أو forms 12c تقديم بلاغ
بتاريخ: 15 مايو 20196 سنة comment_298476 بدك تعمل فورم للمستخدم (frontend) يعمل منو الاستيراد، ولا بدك تعمل الاستيراد من الـ backend ؟ تقديم بلاغ
بتاريخ: 15 مايو 20196 سنة comment_298477 مثال على استيراد بيانات اكسل oracle 10g الكود على الزرار DECLARE CONVID PLS_INTEGER; APPID PLS_INTEGER; i number; x number; v_name VARCHAR2(100); v_BRN varchar2(10); v_NO varchar2(10); v_qty varchar2(10); X1 NUMBER; Y1 NUMBER:=0; Y2 NUMBER:=0; Y3 NUMBER:=0; V ITEM; z number; OUT_FILR TEXT_IO.FILE_TYPE; BEGIN z:=:SYSTEM.CURSOR_RECORD; LAST_RECORD; X1:=:SYSTEM.CURSOR_RECORD; FIRST_RECORD; synchronize; -- Appid := dde.app_begin('C:\Program Files\Microsoft Office\Office\excel.exe C:\ora_xls\creadit.xls',dde.app_mode_minimized); Appid := dde.app_begin('C:\Program Files\Microsoft Office\OFFICE11\excel.exe D:\TEST1.xls',dde.app_mode_minimized); dde.app_focus(appid); convid := dde.initiate('EXCEL','TEST1.xls'); x := 0; FOR I IN 2..100000 loop dde.request(convid,'R' || to_char(i) ||'C1',v_name,dde.cf_text,100000); dde.request(convid,'R' || to_char(i) ||'C2',v_no,dde.cf_text,100000); dde.request(convid,'R' || to_char(i) ||'C3',v_QTY,dde.cf_text,100000); if substr(v_NAME,1,length(v_NAME)-2) is null then exit; end if; --insert into TEST( --ID , --NAME --) --VALUES( -- TO_NUMBER(substr(v_NO,1,length(v_NO)-2)), -- substr(v_NAME,1,length(v_NAME)-2) -- ); :PROD_EXP_OUT.PROD_DISC_L:=substr(v_NAME,1,length(v_NAME)-2); :PROD_EXP_OUT.B_NO:=TO_NUMBER(substr(v_NO,1,length(v_NO)-2)); :PROD_EXP_OUT.QTY:=TO_NUMBER(substr(v_QTY,1,length(v_QTY)-2)); SELECT PRODUCT.exp_date,(PROD_EXP.b_stock+PROD_EXP.qun_in-PROD_EXP.qun_out) as bal,PRODUCT.PROD_ID INTO :PROD_EXP_OUT.PROD_EXP_DATE,:PROD_EXP_OUT.BAL,:PROD_EXP_OUT.PROD_ID FROM PRODUCT ,PROD_EXP where PRODUCT.PROD_ID=PROD_EXP.PROD_ID AND PRODUCT.com_id=:PROD_EXP_OUT_H.com_id and PRODUCT.B_NO=:PROD_EXP_OUT.B_NO AND TRIM(PRODUCT.DISC)=TRIM(:PROD_EXP_OUT.PROD_DISC_L); IF :PROD_EXP_OUT.QTY>:PROD_EXP_OUT.BAL THEN :PROD_EXP_OUT.QTY:=0; END IF; x:= x + 1; DOWN ; end loop; --COMMIT; dde.terminate(convid); dde.app_end(appid); END; تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.