Upload data from flat file
Is there a way to upload data from a flat file and check of existing records and perform updates and inserts respectively on a table using MERGE as available in Oracle 9i version.
I don't want to use SQLLOADER utility for this purpose as I will be having existing data which might give exceptions for primary key, etc.
Is it possible to do this using UTL_FILE utility and use of MERGE statement.
Any inputs will be highly appreciated.
Thanks
This is what i am doing as of today :-
This process reads the flat file and uploads and updates data into 2 different tables.
create or replace procedure EPS.GET_DATA(filelocation varchar2,filename varchar2)
IS
--declare
my_file utl_file.file_type;
-- variables used to parse the input data line ...
line char(45);
l_EPCI_CID_ID char(25);
l_cid number :=0;
l_EPCI_BILLING_ACCOUNT_ID char(15);
l_account number :=0;
l_EPCI_BILLING_COMPANY_CD char(2);
l_EPCI_SOURCE_SYSTEM_CD char(3);
-- timing variables ...
l_start_time date;
l_end_time date;
l_difference number;
l_run_id varchar2(40) := '';
counter number := 0;
mrow number :=0;
oldCustomerCid number :=0 ;
rowsFound number :=0;
rowsFoundForCustomer number :=0;
rowsFound2 number :=0;
rowsFound3 number :=0;
mUpdate number :=0;
cUpdate number :=0;
cInsert number :=0;
cSkipped number :=0 ;
mrowupd number :=0;
rowsSkipped number :=0;
begin
-- Open the input file ....
begin
dbms_output.put_line('opening file :'||filename||' from location :'||filelocation);
my_file := utl_file.fopen(filelocation,filename,'r');
exception
when utl_file.invalid_filehandle then
dbms_output.put_line('invalid_filehandle');
raise_application_error(-20100,'file error');
when no_data_found then
dbms_output.put_line('no data found exception');
raise_application_error(-20100,'file error');
when others then
null;
end;
-- Read data and insert it into the table ...
dbms_output.put_line('program started: now = '|| to_char(sysdate,'HH:MI:SS'));
l_start_time := sysdate;
begin
dbms_output.put_line('looping cursor to search existing groups');
loop
utl_file.get_line(my_file,line);
l_EPCI_CID_ID := substr(line,1,25);
l_cid := to_number(l_EPCI_CID_ID);
l_EPCI_BILLING_ACCOUNT_ID := substr(line,26,15);
l_account :=to_number(l_EPCI_BILLING_ACCOUNT_ID);
l_EPCI_BILLING_COMPANY_CD := substr(line,41,2);
l_EPCI_SOURCE_SYSTEM_CD := substr(line,43,3);
-- Populating Mad.Mad_Customer_Profile table with EPS CID, If CID exists then updating MCP_LAST_INVOICE_LOAD_DT with system date
if(oldCustomerCid <> l_cid) then
Select count(*) into rowsFoundForCustomer from MAD.MAD_CUSTOMER_PROFILE WHERE MCP_CID_ID = l_cid ;
if rowsFoundForCustomer=0 then
Insert into MAD.MAD_CUSTOMER_PROFILE values(l_cid,sysdate,sysdate,'EBILL');
cInsert := cInsert+1;
else
Update MAD.MAD_CUSTOMER_PROFILE set MCP_LAST_INVOICE_LOAD_DT=SYSDATE,
MCP_UPDATE_DATE=SYSDATE, MCP_USER_ID='EBILL' where MCP_CID_ID=l_cid;
cUpdate := cUpdate+1;
end if;
else
cSkipped := cSkipped+1;
end if ;
oldCustomerCid := l_cid;
-- Populating EPS.EPS_CBS_INVOICE_CUSTOMER table with the flat file data.
select count(*) into rowsFound
from EPS.EPS_CBS_INVOICE_CUSTOMER
WHERE EPCI_CID_ID=l_cid and
to_number(EPCI_BILLING_ACCOUNT_ID)=l_account
AND rtrim(EPCI_BILLING_COMPANY_CD)=rtrim(l_EPCI_BILLING_COMPANY_CD)
AND rtrim(EPCI_SOURCE_SYSTEM_CD)=rtrim(l_EPCI_SOURCE_SYSTEM_CD)
and rtrim(EPCI_ACTIVE_IND)='Y';
if rowsFound=0 then
Declare
Cursor c1 is
select * from EPS.EPS_CBS_INVOICE_CUSTOMER
WHERE
to_number(EPCI_BILLING_ACCOUNT_ID)=l_account
AND rtrim(EPCI_BILLING_COMPANY_CD)=rtrim(l_EPCI_BILLING_COMPANY_CD)
AND rtrim(EPCI_SOURCE_SYSTEM_CD)=rtrim(l_EPCI_SOURCE_SYSTEM_CD)
and EPCI_ACTIVE_IND='Y';
myRec eps.eps_cbs_invoice_customer%ROWTYPE ;
Begin
if not c1%isopen then
open c1 ;
end if;
loop
fetch c1 into myRec;
exit When c1%notfound;
UPDATE EPS.EPS_CBS_INVOICE_CUSTOMER
SET EPCI_ACTIVE_IND='N',EPCI_UPDATE_DT=SYSDATE,EPCI_UPDATE_USER_ID='EBILL'
WHERE
--EPCI_CID_ID=L_CID and
TO_NUMBER(EPCI_BILLING_ACCOUNT_ID)=l_account
AND rtrim(EPCI_BILLING_COMPANY_CD)=rtrim(l_EPCI_BILLING_COMPANY_CD)
AND rtrim(EPCI_SOURCE_SYSTEM_CD)=rtrim(l_EPCI_SOURCE_SYSTEM_CD);
mrowupd := mrowupd+1;
end loop;
close c1;
insert into EPS.EPS_CBS_INVOICE_CUSTOMER(EPCI_CID_ID,EPCI_BILLING_ACCOUNT_ID,
EPCI_BILLING_COMPANY_CD,EPCI_SOURCE_SYSTEM_CD,EPCI_ACTIVE_IND,EPCI_UPDATE_DT,EPCI_UPDATE_USER_ID)
Values(l_cid,l_EPCI_BILLING_ACCOUNT_ID,l_EPCI_BILLING_COMPANY_CD,l_EPCI_SOURCE_SYSTEM_CD,'Y',SYSDATE,'EBILL');
mrow := mrow+1;
end ;
Else
rowsSkipped:=rowsSkipped+1;
END IF;
end loop;
Exception
when no_data_found then
utl_file.fclose(my_file);
dbms_output.put_line('Number of lines parsed =');
when value_error then
dbms_output.put_line('value error');
raise_application_error(-20100,'file error');
when utl_file.invalid_path then
dbms_output.put_line('invalid path');
raise_application_error(-20100,'file error');
when utl_file.invalid_mode then
dbms_output.put_line('invalid_mode');
raise_application_error(-20100,'file error');
when utl_file.invalid_filehandle then
dbms_output.put_line('invalid_filehandle');
raise_application_error(-20100,'file error');
when utl_file.invalid_operation then
dbms_output.put_line('invalid_operation');
raise_application_error(-20100,'file error');
when utl_file.read_error then
dbms_output.put_line('read_error');
raise_application_error(-20100,'file error');
when utl_file.write_error then
dbms_output.put_line('write_error');
raise_application_error(-20100,'file error');
when utl_file.internal_error then
dbms_output.put_line('internal_error');
raise_application_error(-20100,'file error');
WHEN DUP_VAL_ON_INDEX THEN
dbms_output.put_line('DUPLICATE RECORD FOUND WHILE INSERTING RECORD');
when others then
dbms_output.put_line('un-handled');
raise_application_error(-20100,'file error');
null;
end;
-- Now commit and close the file ...
COMMIT;
dbms_output.put_line('program finished: now = '||
to_char(sysdate,'HH:MI:SS'));
dbms_output.put_line('Rows Inserted into EPS table :'|| mrow);
dbms_output.put_line('Rows Updates in EPS table:'|| mrowupd);
dbms_output.put_line('Rows Skipped :'|| rowsSkipped);
dbms_output.put_line('Rows Inserted into Customer table :'|| cInsert);
dbms_output.put_line('Rows Updates in Customer table:'|| cUpdate);
dbms_output.put_line('Duplicate CID''s Skipped :'|| cSkipped);
l_end_time := sysdate;
l_difference := l_end_time - l_start_time;
utl_file.fclose(my_file);
end;
Similar Messages
-
How to upload data from flat file to datastore object in BI 7.0
Dear friends,
Please tell me
step by step process for upload data from flat file to datastore object in BI 7.0
<removed by moderator>
please help me
Thanks,
D.prabhu
Edited by: Siegfried Szameitat on Aug 17, 2011 11:40 AMCreate transformation on thr data source and keep the DSO as the target and load.
Ravi Thothadri -
Upload data from flat file to OVKK using BDC
Hi All,
I want to upload data from flat file to OVKK tcode using BDC.
OVKK is a maintaince view with a table control.
So please send me code for uploading data to OVKK through BDC.
Thanks & Regards,
Siva.BHi,
Welcome to SDN!!!!!!!!!!
Can you see this example for Table control.
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
Today this is the second post on the same issue and same Tranx.
1st try through SHDB and check the code.
Thanks.
If this helps you reward with points. -
Error when uploading data from Flat file
I am uplading data from Flat file.
When I am uploading it gives an error
An error occurred in record 1 during execution of conversion exit CONVERSION_EXIT_CUNIT_INPUT for field UNIT.
Can any one help.
Thanx in Advance.
Regards,
Pradeep.Hi Pradeep,
Refer this link:
CONVERSION_EXIT_CUNIT_INPUT error in flat file load
Re: Error in Flat files upload
Also try this - In the transfer structure check the checkbox fo UNIT and retry the load. Hopefully it should be fine.
Bye
Dinesh -
Scheduling Problem for uploading Data from Flat file to SAP
Hi guys,
I am facing a weared problem in uploading some leave records in z table. The code is working fine if we run it through se38 after selecting the file from a shared location from production server which has all the access rights.
This folder lies in the \usr folder of SAP Production.
I have kept all the Flat files in the shared path "
Tis-mum-iz-s1\migration\SAP-INT\leave\" ...
To give u exact directory structure..
Tis-mum-iz-s1 is the Server Name
usr is the SAP System folder used for uploads and downloads
usr |
...-> Migration |
-> SAP-INT |
-> leave -> (Flat Files)
Migration folder is shared with all rights.
Obviously, we cannot give shared drive as the variant in the scheduler.
So i use the system path i.e. \usr\sap\tmp\migration\sap-int\leave\ as the variant.
All my other download programs are working fine with this path as a variant...
But my this particular upload program does not work with this path....
I am giving u my code...
TATA INTERACTIVE SYSTEMS (A Division of TATA INDUSTRIES LIMITED)
REPORT : ZMIGRATE_ZLEAVE
DESCRIPTION : To Upload the Leave data. (ZLEAVE)
CREATED BY : Abhishek Bachhawat
CREATED ON : 01.09.2005
CONSULTANT : ANAND
REPORT ZMIGRATE_ZLEAVE.
TABLES: ZLEAVE.
data: begin of wtab,
MANDT(3),
ZLVID(8),
PERNR(8),
ZSTDT(8),
ZENDT(8),
ZDAYS(4),
AEDAT(8),
ERDAT(8),
end of wtab,
itab like WTAB occurs 0 WITH HEADER LINE.
data: temp like zleave occurs 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK file
WITH FRAME TITLE text-005.
parameters: file like rlgrap-filename Obligatory.
Concatenate File SY-DATUM '_Leave.txt' into File.
SELECTION-SCREEN END OF BLOCK file.
at SELECTION-SCREEN ON VALUE-REQUEST FOR file .
CALL FUNCTION 'WS_FILENAME_GET'
IMPORTING
FILENAME = file.
IF SY-SUBRC <> 0.
ENDIF.
start-of-selection.
if file ne space.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = FILE
FILETYPE = 'DAT'
TABLES
DATA_TAB = ITAB.
else.
message e000(zps) with 'Specify a file'.
endif.
SORT ITAB BY ZLVID.
LOOP AT ITAB.
REFRESH TEMP.
CLEAR TEMP.
TEMP-MANDT = sy-mandt.
TEMP-ERDAT = SY-DATUM.
TEMP-ZLVID = ITAB-ZLVID.
TEMP-PERNR = ITAB-PERNR.
TEMP-ZSTDT = ITAB-ZSTDT.
TEMP-ZENDT = ITAB-ZENDT.
TEMP-ZDAYS = ITAB-ZDAYS.
TEMP-AEDAT = ITAB-AEDAT.
TEMP-ERDAT = ITAB-ERDAT.
APPEND TEMP.
SELECT SINGLE *
FROM ZLEAVE
WHERE ZLVID = TEMP-ZLVID
AND PERNR = TEMP-PERNR.
IF SY-SUBRC = 0.
UPDATE ZLEAVE SET ZSTDT = TEMP-ZSTDT
ZENDT = TEMP-ZENDT
ZDAYS = TEMP-ZDAYS
AEDAT = TEMP-AEDAT
ERDAT = TEMP-ERDAT
WHERE ZLVID = TEMP-ZLVID
AND PERNR = TEMP-PERNR.
ELSE.
INSERT ZLEAVE FROM TABLE TEMP.
COMMIT WORK.
ENDIF.
ENDLOOP.Hi,
open dataset file for input in text mode.
check sy-subrc = 0.
while sy-subrc = 0.
read dataset file into wa.
if sy-subrc = 0.
append wa to itab.
else.
exit.
endif.
endwhile.
close dataset file.
regards
Siggi
PS: check also the F1-help for open, read and close statements! -
Upload data from flat file into internal table
Hi friends,
I want to upload the data from a flat file into internal table , but the problem is that all the columns in that flat file are seperated by "|" character instead of tabs.
Plz help me out.........HEllo,
DO like this.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = LV_FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X' " Check here
* HEADER_LENGTH = '1'
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = IT_COJRNL
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
VAsanth -
Problem while uploading data from flat file
hi friends,
suppose if there are 100 records in flat file , if 20 records uploaded with out any problem and if error occurs while uploading remaing data . is necessary to upload entire data again or else only remaining data should be uploaded?
i had used call transaction for purchase order application?
please give me reply soon its urgent
thanks & regards
priyaHi Hari,
you have to upload the remaining data.
as u have used CT method, do 1 thing trap the error data in runtime & prepare another flat file. next time correct the data in new flat file. & run the DBC program again with this new flat file.
Reward if useful
Regards
ANUPAM -
Uploading data from flat file to table control
HI All,
I want to upload data to OVKK tcode using BDC. For this I wrote Z program as shown below:
REPORT ZSD_BDC_OVKK_UPLOAD
NO STANDARD PAGE HEADING LINE-SIZE 255.
*INCLUDE bdcrecx1.
DATA : BEGIN OF T_DUMMY OCCURS 0,
VAR(100) TYPE C,
END OF T_DUMMY.
DATA: BEGIN OF ITAB OCCURS 0,
KALSM(10) TYPE C,
* KARTV(10) TYPE C,
VKORG(4) TYPE C,
VTWEG(2) TYPE C,
SPART(2) TYPE C,
KALVG(1) TYPE C,
KALKS(1) TYPE C,
KALSM(6) TYPE C,
KARTV(4) TYPE C,
END OF ITAB.
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : v_filename TYPE string.
PARAMETER : filename LIKE rlgrap-filename OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
field_name = filename
CHANGING
file_name = filename.
START-OF-SELECTION.
v_filename = filename.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_filename
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = T_DUMMY.
LOOP AT T_DUMMY.
ITAB-VKORG = T_DUMMY-VAR+0(4).
ITAB-VTWEG = T_DUMMY-VAR+5(2).
ITAB-SPART = T_DUMMY-VAR+8(2).
ITAB-KALVG = T_DUMMY-VAR+11(1).
ITAB-KALKS = T_DUMMY-VAR+13(1).
ITAB-KALSM = T_DUMMY-VAR+15(6).
ITAB-KARTV = T_DUMMY-VAR+22(4).
APPEND ITAB.
ENDLOOP.
DATA: FNAM(20) TYPE C,
IDX TYPE C.
MOVE 1 TO IDX.
LOOP AT ITAB.
REFRESH IT_BDCDATA.
PERFORM bdc_dynpro USING 'SAPML080Z' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'V_T683V-KALSM(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=NEWL'.
PERFORM bdc_dynpro USING 'SAPML080Z' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'V_T683V-VKORG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
CONCATENATE 'V_T683V-KALSM(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-kalsm.
CONCATENATE 'V_T683V-KARTV(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-kartv.
CONCATENATE 'V_T683V-VKORG(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-vkorg.
CONCATENATE 'V_T683V-VTWEG(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-vtweg.
CONCATENATE 'V_T683V-SPART(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-spart.
CONCATENATE 'V_T683V-KALVG(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-kalvg.
CONCATENATE 'V_T683V-KALKS(' IDX ')' INTO FNAM.
PERFORM bdc_field USING FNAM
itab-kalks.
PERFORM bdc_dynpro USING 'SAPLSTRD' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KO008-TRKORR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=LOCK'.
PERFORM bdc_field USING 'KO008-TRKORR'
'D47K919377'.
PERFORM bdc_field USING 'BDC_CURSOR'
'V_T683V-VKORG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'V_T683V-VKORG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
CALL TRANSACTION 'OVKK' USING IT_BDCDATA
MODE 'A'
UPDATE 'S'
MESSAGES INTO IT_BDCMSGCOLL.
IDX = IDX + 1 .
endloop.
FORM BDC_DYNPRO USING PROG SCR.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROG.
IT_BDCDATA-DYNPRO = SCR.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
I checked in debugging mode and found that data is passed to internal table but its not uploading data to OVKK, there no data is displayed.
Please tell me solution for this.....
regards,
ravindra.Hi,
Look at the following link you will find some good example of Table control.
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
Here you need to take care to which line of table control you are populating the data.
Make sure to take care of page down in table control.
*********Try Call Transaction in MODE 'N'.
Check your OK_CODE once again.
Try to give BACk also after saving.
The Table control is mainly used to update no.of line items at one shot. No need to come BACK for each and every record.
Try to do recording in SHDB once again and see the changes closely.
Thanks.
If this helps you reward with points.
Message was edited by: KDeepak
Message was edited by: KDeepak -
How to upload data from flat to ztables with in the same client by idocs
Hi Experts,
I have a requirement in IDOCS, I need to create a custom IDOC .I am working on IDES 4.6c. The reqirement is , there are ztables with header and item data. say for example Authors and Books. I need to upload data from flat file which is available in presentation server of the same client, which will updated in ztables by using idocs. For this i need to do ale settings also. The client is 800. There is no other client available. With in the same client i need to do the above stuff.
For this requirement how to approach (step by step) to accomplish.
Thanks in Advance.
Regards
J.S.VarmaHi,
This is the procedure.
create segments using we31. <b>don't forget to relaese it</b>
create idoc using above segments using we30 <b>don't forget to relaese it</b>
create message type using we81
create function module to upload data using se37
maintain process code using we42
create partner profiles we20.
In the fm module itself write the code for downloading the data from presentation server by GUI_DOWNLOAD.
Then update the database tables directly by insrt through other internal table in the same client itself.
Thanks
Manju -
Data Source creation for Master Data from Flat File to BW
Hi,
I need to upload Master Data from Flat File. Can anybody tell step by step right from begining of creation of DataSource up to Loading into Master Data InfoObject.
can any body have Document.
Regards,
Chakri.Hi,
This is the procedure.
1. Create m-data with or without attributes.
2. Create infosource .
a) with flexible update
or
b) with direct update
3. Create transfer rules and assign tyhe names of m-data and attribute in "Transfer rules" tab and transfer them to communication structure.
4. Create the flat-file with same stucture as communication structure.
5. if chosen direct update then create infopackage and assign the name of flat-file and schedule it.
6. if chosen flexible update the create update rule with assigning name of the infosource and the schedule it by creating infopackage.
Hope this helps. If still have prob then let me know.
Follow this link also.
http://help.sap.com/saphelp_nw2004s/helpdata/en/b2/e50138fede083de10000009b38f8cf/frameset.htm
Assign points if helpful.
Vinod. -
Reading data from flat file in aplication server
hi all,
can any body provide code how to read data from flat file which is in application server.
thanks in advancehi,
chk this sample code.
parameters: p_file like rlgrap-filename obligatory
default '/usr/sap/upload.xls'.
types: begin of t_data,
vbeln like vbap-vbeln,
posnr like vbap-posnr,
matnr like vbap-matnr,
werks like vbap-werks,
megne like vbap-zmeng,
end of t_data.
data: it_data type standard table of t_data,
wa_data type t_data.
open dataset p_file for output in text mode encoding default.
if sy-subrc ne 0.
write:/ 'Unable to open file:', p_file.
else.
do.
read dataset p_file into wa_data.
if sy-subrc ne 0.
exit.
else.
append wa_data to it_data.
endif.
enddo.
close dataset p_file.
endif.
Rgds
Anver -
Wrong century for the dates from flat file
I am in the process of uploading the data from flat file ( aka CSV) into oracle via external table .
All the dates have the year of 20xx. My understanding was 51-99 will be prefixed with 19 ( such as 1951 - 1999) and 00-50
will be prefixed with 20 ( such as 2004 ... )
The column below ( startdate ) is of timestamp .
Is my understanding wrong ?
SQL> select startdate , to_date(startdate , 'dd/mm/yyyy' ) newdate from tab;
NEW_DATE STARTDATE
09/18/2090 18-SEP-90 12.00.00.000000000 AM
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
SQL> show parameter nls
NAME TYPE VALUE
nls_calendar string
nls_comp string BINARY
nls_currency string
nls_date_format string
nls_date_language string
nls_dual_currency string
nls_iso_currency string
nls_language string AMERICAN
nls_length_semantics string BYTE
nls_nchar_conv_excp string FALSE
nls_numeric_characters string
nls_sort string
nls_territory string AMERICA
nls_time_format string
nls_time_tz_format string
nls_timestamp_format string
nls_timestamp_tz_format string
SQL>
SQL>Offense . None taken ...
I literally typed the sql ( as I did not copy & paste SQL / resultsets ) . I did use to_char in my original sql . I don't want to expose the real table . thats why I was giving the made up test case. If you carefully the SQL and the equivalent result sets ... you would have noticed .
Here is the SQL used ( of course , I have changed the table name ) ...
select to_char(startdate , 'mm/dd/yyyy') sdate, startdate from t
SDATE STARTDATE
09/18/2090 18-SEP-90 12.00.00.000000 AM
The flatfile had the value of 091890 as the data . -
hi guru,
I want to upload data from excel file for mm02.. first of all help on the matter of how to upload data from excel...
i hv used the FM ALSM_EXCEL_TO_INTERNAL_TABLE.. but its not working it uploading garbage value ... so tell me how to used it...
help me on this matter.Check below example.
parameters : p_file LIKE rlgrap-filename OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM get_file_name.
PERFORM get_file_to_excel.
*& Form get_file_name
FORM get_file_name.
DATA: lv_name LIKE sy-repid.
lv_name = sy-repid..
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = lv_name
dynpro_number = syst-dynnr
static = 'X'
CHANGING
file_name = p_file.
ENDFORM. " get_file_name
*& Form get_file_to_excel
FORM get_file_to_excel.
DATA: idata LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = '1'
i_begin_row = '2' "Do not require headings
i_end_col = '2'
i_end_row = '60000'
TABLES
intern = idata
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
STOP.
ENDIF.
* Get first row retrieved
READ TABLE idata INDEX 1.
* Set first row retrieved to current row
DATA: gd_currentrow TYPE i.
gd_currentrow = idata-row.
LOOP AT idata.
* Reset values for next row
IF idata-row NE gd_currentrow.
APPEND f. CLEAR f.
gd_currentrow = idata-row.
ENDIF.
CASE idata-col.
WHEN '0001'.
f-belnr = idata-value.
ENDCASE.
ENDLOOP.
APPEND f. CLEAR f. -
Upload data from excel file to mii without UDS and PCo
Hi Experts,
I am trying to upload data from excel file to mii db without using UDS and PCo. Is there any other ways that we can achieve it.
I am thinking one solution , writing stored procedure. any other solutions?
Thanks in advance,
Eswar.Hi,
Thanks for reply.
I tried to create OLEDB data server which will point to my excel file in D drive.Its created successfully and i tried to query the datasource using sql query, I am not getting any modes in sql query template.
can u provide some steps..how to access this file.
Thanks, Eswar -
Upload data from excel file to Oracle table
Dear All,
I have to upload data from excel file to Oracle table without using third party tools and without converting into CSV file.
Could you tell me please how can i do this using PLSQl or SQL Loader.
Thnaks in Advance..Dear All,
I have to upload data from excel file to
Oracle table without using third party tools and
without converting into CSV file.
Could you tell me please how can i do this
using PLSQl or SQL Loader.
Thnaks in Advance..As billy mentioned using ODBC interface ,the same HS service which is a layer over using traditional ODBC to access non oracle database.Here is link you can hit and trial and come out here if you have any problem.
http://www.oracle-base.com/articles/9i/HSGenericConnectivity9i.php[pre]
Khurram
Maybe you are looking for
-
Is Flash Builder a good beginner program for creation of android app?
Hi there, I'm planning to create a Android app and I'm searching for the right program to do so. I have absolutly no knowledge about programming, but happen to have Flash Builder as part of the Creative Suite CS6. As I need to learn everything from t
-
I want to back up Firefox bookmarks automatically. I know that Firefox has manual bookmark export and bookmark. Can it be automatic? If not I will use backup software to do it, but I need to know the name of the bookmark file and where it is located
-
Hi, i just installed oracle 10g on my laptop and it uses too much resources. cpu usage is always around 96-100%. whats the reason that it starts by itself and is taking too much resources. Raj
-
Response completely written by servlet - how can a filter find out?
hi! i am working on a servlet filter and i need to wait for the whole response to be written by the underlying servlet before the filter can start processing it. it's no problem, if the servlet closes the stream or writer at the end of the service me
-
What to do when I open y pro there is a question mark blinking?
When I start my Pro a question mark starts blinking.what shoul I do?