Home » Developer & Programmer » Forms » Reading data from excel file and load into forms (Oracle 10g Forms, WinXP)
Reading data from excel file and load into forms [message #599532] Fri, 25 October 2013 06:08 Go to next message
stalin4d
Messages: 226
Registered: May 2010
Location: Chennai, Tamil Nadu, Indi...
Senior Member
Hi,

I have a Excel File which contains some columns and rows, i need to load that excel into a form and import that form data to Database Table, using DDE Method.

In simple i say;

Just to read the excel and load into a form, which can be imported into a table later.

How to achieve this? anybody using this can share your codes!
only dde method.



Re: Reading data from excel file and load into forms [message #599542 is a reply to message #599532] Fri, 25 October 2013 10:38 Go to previous messageGo to next message
Lalit Kumar B
Messages: 3174
Registered: May 2013
Location: World Wide on the Web
Senior Member
See of these links helps -
read-excel-into-forms
https://sites.google.com/site/jvrexcelproject/version-1-5-1-english

Similar threads from OTN -
https://forums.oracle.com/thread/2379071
https://forums.oracle.com/thread/597988
Re: Reading data from excel file and load into forms [message #599651 is a reply to message #599542] Mon, 28 October 2013 01:05 Go to previous messageGo to next message
stalin4d
Messages: 226
Registered: May 2010
Location: Chennai, Tamil Nadu, Indi...
Senior Member
The post you have mentioned is using webutil, but i m
should not use webutil;

below is the code i m trying to read the excel file;
My problem is; that the excel file has more than 300 lines, but
when i execute the below program through my form only 100 line is fetching in
my form; and finally an error is displayed

Ora-06502 : Numeric or value error;


i need to know why only 100 lines is reading; i trying to figure it out pls help.

all the 19 fields is character fields only;

--IMPORT_FROM_EXCEL_PROC;
forms_ddl('truncate table CHASSIS_ISDM_EXCEL');
commit;
DECLARE
appid PLS_INTEGER; 
convid PLS_INTEGER; 
docid PLS_INTEGER; 
conv_established BOOLEAN := FALSE; 
buffer1 VARCHAR2(200);
buffer2 VARCHAR2(200);
buffer3 VARCHAR2(200);
buffer4 VARCHAR2(200);
buffer5 VARCHAR2(200);
buffer6 VARCHAR2(200);
buffer7 VARCHAR2(200);
buffer8 VARCHAR2(200);
buffer9 VARCHAR2(200);
buffer10 VARCHAR2(200);
buffer11 VARCHAR2(200);
buffer12 VARCHAR2(200);
buffer13 VARCHAR2(200);
buffer14 VARCHAR2(200);
buffer15 VARCHAR2(200);
buffer16 VARCHAR2(200);
buffer17 VARCHAR2(200);
buffer18 VARCHAR2(200);
buffer19 VARCHAR2(200);
--buffer20 VARCHAR2(200);
--buffer21 VARCHAR2(200);
--buffer22 VARCHAR2(200);


DNO VARCHAR2(14);
DN VARCHAR2(14);
DL VARCHAR2(13);
DP VARCHAR2(13);
LC VARCHAR2(6);
I NUMBER(10) := 1;

BEGIN
go_block('CHASSIS_ISDM_EXCEL');
clear_block;
APPID := DDE.APP_BEGIN('C:\Program Files\Microsoft Office\Office12\excel.exe', 
DDE.APP_MODE_MINIMIZED); 
WHILE NOT conv_established 
LOOP 
BEGIN 
convid := DDE.INITIATE('excel', 'system'); 
conv_established := TRUE; 
EXCEPTION 
WHEN DDE.DMLERR_NO_CONV_ESTABLISHED THEN 
conv_established := FALSE; 
END; 
END LOOP; 

DDE.EXECUTE(convid, '[Open("c:\Chassis_Entry1.xlsx")]', 100000000); 
docid := DDE.INITIATE('excel', 'c:\Chassis_Entry1.xlsx'); 
LOOP
LC := 'R'||I||'C1';
DDE.REQUEST (docid, LC, buffer1, DDE.CF_TEXT, 200); 

exit when SUBSTR(BUFFER1,1,LENGTH(BUFFER1)-2)= 'END' ;
/*
IF SUBSTR(BUFFER1,1,LENGTH(BUFFER1)-2)= 'END' THEN 
NULL;
END IF;
*/
LC := 'R'||I||'C2';
DDE.REQUEST (docid, LC, buffer2, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C3';
DDE.REQUEST (docid, LC, buffer3, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C4';
DDE.REQUEST (docid, LC, buffer4, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C5';
DDE.REQUEST (docid, LC, buffer5, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C6';
DDE.REQUEST (docid, LC, buffer6, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C7';
DDE.REQUEST (docid, LC, buffer7, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C8';
DDE.REQUEST (docid, LC, buffer8, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C9';
DDE.REQUEST (docid, LC, buffer9, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C10';
DDE.REQUEST (docid, LC, buffer10, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C11';
DDE.REQUEST (docid, LC, buffer11, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C12';
DDE.REQUEST (docid, LC, buffer12, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C13';
DDE.REQUEST (docid, LC, buffer13, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C14';
DDE.REQUEST (docid, LC, buffer14, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C15';
DDE.REQUEST (docid, LC, buffer15, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C16';
DDE.REQUEST (docid, LC, buffer16, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C17';
DDE.REQUEST (docid, LC, buffer17, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C18';
DDE.REQUEST (docid, LC, buffer18, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C19';
DDE.REQUEST (docid, LC, buffer19, DDE.CF_TEXT, 200); 

/*LC := 'R'||I||'C20';
DDE.REQUEST (docid, LC, buffer20, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C21';
DDE.REQUEST (docid, LC, buffer21, DDE.CF_TEXT, 200); 

LC := 'R'||I||'C22';
DDE.REQUEST (docid, LC, buffer22, DDE.CF_TEXT, 200); 
*/

/*
IF buffer1 is not null  then
INSERT INTO CHASSIS_ISDM_EXCEL VALUES(SUBSTR(BUFFER1,1,LENGTH(BUFFER1)-2),
SUBSTR(buffer2,1,LENGTH(buffer2)-2),SUBSTR(buffer3,1,LENGTH(buffer3)-2),SUBSTR(buffer4,1,LENGTH(buffer4)-2),SUBSTR(buffer5,1,LENGTH(buffer5)-2),
SUBSTR(buffer6,1,LENGTH(buffer6)-2),SUBSTR(buffer7,1,LENGTH(buffer7)-2),SUBSTR(buffer8,1,LENGTH(buffer8)-2),SUBSTR(buffer9,1,LENGTH(buffer9)-2),
SUBSTR(buffer10,1,LENGTH(buffer10)-2),SUBSTR(buffer11,1,LENGTH(buffer11)-2),SUBSTR(buffer12,1,LENGTH(buffer12)-2),SUBSTR(buffer13,1,LENGTH(buffer13)-2),
SUBSTR(buffer14,1,LENGTH(buffer14)-2),SUBSTR(buffer15,1,LENGTH(buffer15)-2),SUBSTR(buffer16,1,LENGTH(buffer16)-2),SUBSTR(buffer17,1,LENGTH(buffer17)-2),
SUBSTR(buffer18,1,LENGTH(buffer18)-2),null);
forms_ddl('COMMIT');
end if;
*/

go_block('CHASSIS_ISDM_EXCEL');

:CHASSIS_ISDM_EXCEL.sl_no :=  SUBSTR(BUFFER1,1,LENGTH(BUFFER1)-2);
:CHASSIS_ISDM_EXCEL.stu  :=  SUBSTR(BUFFER2,1,LENGTH(BUFFER2)-2);
:CHASSIS_ISDM_EXCEL.make :=  SUBSTR(BUFFER3,1,LENGTH(BUFFER3)-2); 
:CHASSIS_ISDM_EXCEL.invoiceno :=  SUBSTR(BUFFER4,1,LENGTH(BUFFER4)-2); 
:CHASSIS_ISDM_EXCEL.invdate :=  SUBSTR(BUFFER5,1,LENGTH(BUFFER5)-2); 
:CHASSIS_ISDM_EXCEL.chassisno :=  SUBSTR(BUFFER6,1,LENGTH(BUFFER6)-2); 
:CHASSIS_ISDM_EXCEL.wbase :=  SUBSTR(BUFFER7,1,LENGTH(BUFFER7)-2); 
:CHASSIS_ISDM_EXCEL.paid_date :=  SUBSTR(BUFFER8,1,LENGTH(BUFFER8)-2); 
:CHASSIS_ISDM_EXCEL.baseprice :=  SUBSTR(BUFFER9,1,LENGTH(BUFFER9)-2); 
:CHASSIS_ISDM_EXCEL.less :=  SUBSTR(BUFFER10,1,LENGTH(BUFFER10)-2);
:CHASSIS_ISDM_EXCEL.ex_duty :=  SUBSTR(BUFFER11,1,LENGTH(BUFFER11)-2);
:CHASSIS_ISDM_EXCEL.sale_tax:=  SUBSTR(BUFFER12,1,LENGTH(BUFFER12)-2);
:CHASSIS_ISDM_EXCEL.del_date :=  SUBSTR(BUFFER13,1,LENGTH(BUFFER13)-2);
:CHASSIS_ISDM_EXCEL.due_date:=  SUBSTR(BUFFER14,1,LENGTH(BUFFER14)-2);
:CHASSIS_ISDM_EXCEL.pdi:=  SUBSTR(BUFFER15,1,LENGTH(BUFFER15)-2);
:CHASSIS_ISDM_EXCEL.gross_tot :=  SUBSTR(BUFFER16,1,LENGTH(BUFFER16)-2);
:CHASSIS_ISDM_EXCEL.discount :=  SUBSTR(BUFFER17,1,LENGTH(BUFFER17)-2);
:CHASSIS_ISDM_EXCEL.netpaid :=  SUBSTR(BUFFER18,1,LENGTH(BUFFER18)-2);
:CHASSIS_ISDM_EXCEL.ERRORMSG :=  SUBSTR(BUFFER19,1,LENGTH(BUFFER19)-2);

--:excel_test.id :=  SUBSTR(BUFFER1,1,LENGTH(BUFFER1)-2);
--:excel_test.Name:= SUBSTR(BUFFER2,1,LENGTH(BUFFER2)-2);
--:excel_test.Amt := SUBSTR(BUFFER3,1,LENGTH(BUFFER3)-2);

exit when  SUBSTR(BUFFER19,1,LENGTH(BUFFER19)-2) is null;
next_record;
I := I+1;
END LOOP; 

DDE.TERMINATE(docid); 
DDE.TERMINATE(convid); 
DDE.APP_END(appid); 

EXCEPTION 
WHEN DDE.DDE_APP_FAILURE THEN 
MESSAGE('WINDOWS APPLICATION CANNOT START.'); 
WHEN DDE.DDE_PARAM_ERR THEN 
MESSAGE('A NULL VALUE WAS PASSED TO DDE'); 
WHEN DDE.DMLERR_NO_CONV_ESTABLISHED THEN 
MESSAGE('DDE CANNOT ESTABLISH A CONVERSATION'); 
WHEN DDE.DMLERR_NOTPROCESSED THEN 
MESSAGE('A TRANSACTION FAILED'); 

END;
Re: Reading data from excel file and load into forms [message #599653 is a reply to message #599651] Mon, 28 October 2013 01:13 Go to previous messageGo to next message
Littlefoot
Messages: 21809
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
Error you got means the following (by the way, I believe that you should - by now - be capable of figuring that out yourself. Oracle error codes can easily be found in the Internet):Oracle

ORA-06502: PL/SQL: numeric or value errorstring

Cause: An arithmetic, numeric, string, conversion, or constraint error occurred. For example, this error occurs if an attempt is made to assign the value NULL to a variable declared NOT NULL, or if an attempt is made to assign an integer larger than 99 to a variable declared NUMBER(2).

Action: Change the data, how it is manipulated, or how it is declared so that values do not violate constraints.

Therefore, check whether your data (row 101?) meets criteria in order to be successfully loaded into form items.
Re: Reading data from excel file and load into forms [message #599662 is a reply to message #599653] Mon, 28 October 2013 01:39 Go to previous messageGo to next message
stalin4d
Messages: 226
Registered: May 2010
Location: Chennai, Tamil Nadu, Indi...
Senior Member
No my criteria is not met, the cursor blinks at the 100th row, and not loading after that!
what might be the problem?
Re: Reading data from excel file and load into forms [message #599672 is a reply to message #599662] Mon, 28 October 2013 02:16 Go to previous messageGo to next message
Littlefoot
Messages: 21809
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
Re-read "Cause" once again; that's more or less all I can say about it.
Re: Reading data from excel file and load into forms [message #599682 is a reply to message #599532] Mon, 28 October 2013 03:00 Go to previous messageGo to next message
stalin4d
Messages: 226
Registered: May 2010
Location: Chennai, Tamil Nadu, Indi...
Senior Member
Yes i understood the cause, not null checked but use;
Re: Reading data from excel file and load into forms [message #599689 is a reply to message #599682] Mon, 28 October 2013 04:50 Go to previous messageGo to next message
cookiemonster
Messages: 13923
Registered: September 2008
Location: Rainy Manchester
Senior Member
not null generally has nothing to do with ORA-06502.
Re: Reading data from excel file and load into forms [message #599692 is a reply to message #599689] Mon, 28 October 2013 05:01 Go to previous messageGo to next message
stalin4d
Messages: 226
Registered: May 2010
Location: Chennai, Tamil Nadu, Indi...
Senior Member
U are right cookie...

I found out the solution actually the Length variable size has to be increased.
and got it.
Re: Reading data from excel file and load into forms [message #599694 is a reply to message #599692] Mon, 28 October 2013 05:11 Go to previous messageGo to next message
Littlefoot
Messages: 21809
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
I told you, it's all in the "Cause".
Re: Reading data from excel file and load into forms [message #599727 is a reply to message #599694] Mon, 28 October 2013 07:01 Go to previous message
stalin4d
Messages: 226
Registered: May 2010
Location: Chennai, Tamil Nadu, Indi...
Senior Member
thanks for the info... little...
Previous Topic: when-validate trigger
Next Topic: issue with form trigger failure
Goto Forum:
  


Current Time: Sun May 19 09:43:43 CDT 2024