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 AM

    Create 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.B

    Hi,
    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
    priya

    Hi 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.Varma

    Hi,
      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 advance

    hi,
    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 .

  • UPLOAD DATA FROM EXCEL FILE

    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