Importing a Flat File to Oracle and updating another table

Hey everyone,
I am a newbie with Oracle, and I've tried for the last 2 days to solve this problem below. But all my searches and attempts have failed.
I have a text file called ReturnedFile.txt. This is a comma separated text file that contains records for two fields.... Envelope and Date Returned.
At the same time, I have a table in Oracle called Manifest. This table contains the following fields:
Envelope
DateSentOut
DateReturned
I need to write something that imports the ReturnedFile.txt into a temporary Oracle table named UploadTemp, and then compares the data in the Envelope field from UploadTemp with the Envelope field in Manifest. If it's a match, then the DateReturned field in Manifest needs updated with the DateReturned field in UploadTemp.
I've done this with SQL Server no problem, but I've been trying for two days to make this work with Oracle and I can't figure it out. I've been trying to use SQL*Loader, but I can't even get it to run properly on my machine.
I did create a Control file, saved as RetFile.ctl. Below is the contents of the CTL file:
LOAD DATA
INFILE 'C:\OracleTest\ReturnedFile.txt'
APPEND
INTO TABLE UploadTemp
FIELDS TERMINATED BY "'"
ENVELOPE,
DATERETURNED
If I could get SQL*Loader running, below is the code I came up with to import the text file and then to do the compare to the Manifest table and update as appropriate:
sqlldr UserJoe/Password123 CONTROL=C:\OracleTest\RetFile.ctl LOG=RetFile.log BAD=RetFile.bad
update Manifest m set m.DateReturned =
(select t.DateReturned
    from UploadTemp t
    where m.Envelope = t.Envelope
That's all I got. As I said, I can't find a way to test it and I have no idea if it's even close.
PLEASE...can anyone assist me? Am I even close on this thing?
Joe

If your ReturnedFile.txtfile is comma separated then you need TERMINATED BY "," not TERMINATED BY "'" in your control file.  If there happens to not be an ending comma in any row, then you also need to add TRAILING NULLCOLS to your control file.  You should also use a date format for your date in your control file that corresponds to the date format in your ReturnedFile.txt file, in case it does not match the date format on your system.  You need to add a WHERE EXISTS clause to your update statement to prevent any rows that do not match from having the DateReturned updated to a null value.  Please see the example below.  If this does not help then please do a copy and paste as I did, that includes a few rows of sample data and table structure.  It would also help to see your SQL*Loader log file or a SQL*Loader error message.  If you can't get SQL*Loader to run properly, then you may have other issues, such as file permissions at the operating system level.  There are also other options besides the methods below.  For example, you could use an external table, instead of SQL*Loader, if your ReturnedFile.txtfile is on your serer, not your client.  You could also use merge instead of update.
SCOTT@orcl_11gR2> host type returnedfile.txt
env2,03-07-2013
env3,04-07-2013
env4,05-07-2013
SCOTT@orcl_11gR2> host type retfile.ctl
LOAD DATA
INFILE 'ReturnedFile.txt'
APPEND
INTO TABLE UploadTemp
FIELDS TERMINATED BY ","
trailing nullcols
(ENVELOPE
, DATERETURNED date "dd-mm-yyyy")
SCOTT@orcl_11gR2> create table uploadtemp
  2    (envelope         varchar2(15),
  3     datereturned  date)
  4  /
Table created.
SCOTT@orcl_11gR2> create table Manifest
  2    (Envelope         varchar2(15),
  3     DateSentOut   date,
  4     DateReturned  date)
  5  /
Table created.
SCOTT@orcl_11gR2> insert all
  2  into manifest values ('env1', sysdate-7, sysdate-3)
  3  into manifest values ('env2', sysdate-6, null)
  4  into manifest values ('env3', sysdate-5, null)
  5  select * from dual
  6  /
3 rows created.
SCOTT@orcl_11gR2> select * from manifest
  2  /
ENVELOPE        DATESENTO DATERETUR
env1            28-JUN-13 02-JUL-13
env2            29-JUN-13
env3            30-JUN-13
3 rows selected.
SCOTT@orcl_11gR2> host sqlldr scott/tiger CONTROL=RetFile.ctl LOG=RetFile.log BAD=RetFile.bad
SQL*Loader: Release 11.2.0.1.0 - Production on Fri Jul 5 13:15:06 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
Commit point reached - logical record count 3
SCOTT@orcl_11gR2> select * from uploadtemp
  2  /
ENVELOPE        DATERETUR
env2            03-JUL-13
env3            04-JUL-13
env4            05-JUL-13
3 rows selected.
SCOTT@orcl_11gR2> update Manifest m
  2  set m.DateReturned =
  3    (select t.DateReturned
  4     from   UploadTemp t
  5     where  m.Envelope = t.Envelope)
  6  where exists
  7    (select t.DateReturned
  8     from   UploadTemp t
  9     where  m.Envelope = t.Envelope)
10  /
2 rows updated.
SCOTT@orcl_11gR2> select * from manifest
  2  /
ENVELOPE        DATESENTO DATERETUR
env1            28-JUN-13 02-JUL-13
env2            29-JUN-13 03-JUL-13
env3            30-JUN-13 04-JUL-13
3 rows selected.

Similar Messages

  • Error while loading data from flat file to Oracle DB

    I am new to ODI. I am trying to load data from a flat file to Oracle DB using the LKM File to Oracle (External Table) and using the IKM Oracle Incremental Update. I am getting the following exception during the "Create External Table" stage:
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (most recent call last):
      File "<string>", line 44, in <module>
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
      at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
      at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
      at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
      at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
      at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:202)
      at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:1110)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1488)
      at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:2251)
      at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:2192)
      at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:347)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
    java.sql.SQLException: java.sql.SQLException: ORA-30088: datetime/interval precision is out of range
      at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
      at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:322)
      at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:170)
      at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java:2473)
      at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:48)
      at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:1)
      at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)
      at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2913)
      at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625)
      at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:561)
      at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:464)
      at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
      at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
      at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
      at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:83)
      at java.lang.Thread.run(Thread.java:662)
    Caused by: Traceback (most recent call last):
      File "<string>", line 44, in <module>
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
      at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
      at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
      at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
      at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
      at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:202)
      at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:1110)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1488)
      at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:2251)
      at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:2192)
      at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:347)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
    java.sql.SQLException: java.sql.SQLException: ORA-30088: datetime/interval precision is out of range
      at org.python.core.PyException.fillInStackTrace(PyException.java:70)
      at java.lang.Throwable.<init>(Throwable.java:181)
      at java.lang.Exception.<init>(Exception.java:29)
      at java.lang.RuntimeException.<init>(RuntimeException.java:32)
      at org.python.core.PyException.<init>(PyException.java:46)
      at org.python.core.PyException.<init>(PyException.java:43)
      at org.python.core.Py.JavaError(Py.java:455)
      at org.python.core.Py.JavaError(Py.java:448)
      at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:177)
      at org.python.core.PyObject.__call__(PyObject.java:355)
      at org.python.core.PyMethod.__call__(PyMethod.java:215)
      at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
      at org.python.core.PyMethod.__call__(PyMethod.java:206)
      at org.python.core.PyObject.__call__(PyObject.java:397)
      at org.python.core.PyObject.__call__(PyObject.java:401)
      at org.python.pycode._pyx1.f$0(<string>:50)
      at org.python.pycode._pyx1.call_function(<string>)
      at org.python.core.PyTableCode.call(PyTableCode.java:165)
      at org.python.core.PyCode.call(PyCode.java:18)
      at org.python.core.Py.runCode(Py.java:1204)
      at org.python.core.Py.exec(Py.java:1248)
      at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:172)
      at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:144)
      at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:322)
      at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:170)
      at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java:2472)
      at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:47)
      at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:1)
      at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)
      at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2913)
      at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625)
      at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:558)
      at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:464)
      at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
      at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
      at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
      at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
      at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
      ... 1 more
    Caused by: java.sql.SQLException: ORA-30088: datetime/interval precision is out of range
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
      at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
      at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
      at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
      at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
      at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:202)
      at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:1110)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1488)
      at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:2251)
      at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:2192)
      at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:347)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
      ... 33 more
    Could anyone please provide any pointers.
    Thanks,
    Srini.

    The code that is executed is as follows:
    createTblCmd = r"""
    create table ODITEMP.C$_0PARTNER
      C1_C1 NUMBER(14),
      C2_C2 VARCHAR2(12),
      C3_C3 VARCHAR2(18),
      C4_C4 NUMBER(7),
      C5_C5 TIMESTAMP(11)
    ORGANIZATION EXTERNAL
      TYPE ORACLE_LOADER
      DEFAULT DIRECTORY dat_dir
      ACCESS PARAMETERS
      RECORDS DELIMITED BY 0x'0D0A'
      CHARACTERSET 'WE8ISO8859P1'
      STRING SIZES ARE IN CHARACTERS
      BADFILE 'partners.txt_%a.bad'
      LOGFILE 'partners.txt_%a.log'
      DISCARDFILE 'partners.txt_%a.dsc'
      SKIP 0
      FIELDS
      MISSING FIELD VALUES ARE NULL
      C1_C1 POSITION(1:14) ,
      C2_C2 POSITION(15:26) ,
      C3_C3 POSITION(27:44) ,
      C4_C4 POSITION(45:51) ,
      C5_C5 POSITION(52:62)
      LOCATION ('partners.txt')
    PARALLEL
    REJECT LIMIT UNLIMITED
    # Create the statement
    myStmt = myCon.createStatement()
    # Execute the trigger creation
    myStmt.execute(createTblCmd)
    myStmt.close()
    myStmt = None
    # Commit, just in case
    myCon.commit()

  • Extracting a flat file from oracle table

    I have moved the knowledge module KIM ISO SQL to FileAppend from the Metadata to my project folder.
    But when I create an interface mapping the oracle table and a flat file on a different unix server, in the drop down menu , it shows only KIM SQL TO SQL and KIM Control Append.It does not show up the SQL to FileAppend knowledge module option.
    What should I do to extract a flat file from oracle table?
    Thanks
    Hima
    Overstock.com

    All IKM in the Drop Down Menu are dependent of the target technology.
    A question, at this interface, is your target table a file ?

  • Flat file to Oracle: Dynamic flat file name

    Hi,
    I am doing a transformation from flat file to oracle.
    At one place there is requirement like flat file name is dynamic.
    *eg. D:\ Flat DB\ Sample<Date>.txt   
    examples may be like Sample09012012,Sample08012012 *
    As in physical schema we specify name of file is there any way by which we can specify dynamic file name.
    as stated above.
    Any help and suggestions would be appreciated.

    Hi,
    Yes you can specify a variable in the file name ( the resource name filed) .
    You need to refresh the variable in a package and then use the interface to pick data from the file .
    Thanks,
    Sutirtha

  • Importing From Flat File with Dynamic Columns

    HI
    I am using ssis 2008,i have folder in which I have Four(4) “.txt” files each file will have 2 columns(ID, NAME). I loaded 4
    files in one destination, but today I receive one more “.txt” file here we have 3 columns (ID, NAME, JOB) how can I get a message new column will receive in source. And how can I create in extra column in my destination table dynamically …please help me

    Hi Sasidhar,
    You need a Script Task to read the names and number of columns in the first row of the flat file each time and store it in a variable, then create a staging table dynamically based on this variable and modify the destination table definition if one ore more
    new columns need to be added, and then use the staging table to load the destination table. I am afraid there is no available working script for your scenario, and you need some .NET coding experience to achieve your goal. Here is an example you can refer
    to:
    http://www.citagus.com/citagus/blog/importing-from-flat-file-with-dynamic-columns/ 
    Regards,
    Mike Yin
    TechNet Community Support

  • Map FLAT file to oracle table using 9.04 version - PLS HELP!!!!

    Hello all
    I am having a problem with mapping a flat file to oracle table. The validation is successful, when I go to Project/Deployment manager. Try to deploy the mapping itself and the target table. It said succesful, and the last step is another "Deploy", this one is fail. Saying could not locate the file (which is a flat file) , but it is there on the server.
    I have read all the help on line and follow what they show me, but still not work
    Any ideas? Please provide detail answer if you know it.
    Thank in advance

    Hallo,
    just give a rights on connector
    Variant 1
    1. connect to user sys
    2. grant read,write on directory <connector_name> to <target_schema>;
    or
    Variant 2
    1. as user sys or system give CREATE_ANY_DIRECTORY to <target_schema>
    2. manualy make CREATE DIRECTORY <connector_name> as '<full_path_to_directory>';
    and enjoy :)
    PS: <connector_name> you can take from script CREATE_TABLE wisch in Generation phase was created!
    Kirill

  • MAPPING FLAT FILE TO ORACLE ERROR!! Please help

    hello all
    I am using OWB on Oracle9i.
    Trying to map flat file (file.txt) to oracle table,
    Validate: okey, some warning
    Generate/Deploy: successful.
    But when I check to the database sqlplus there is no rows existed. I verify that I connect to the right database.
    My question is:
    When doing a map from flat file to oracle table. Do I have to have some thing in the middle such as (filter, join) or I just can do a straight mapping if I don't have any condition to filter out.
    Please response if you know the answer.
    Your answer greatly appreciated. Thank you for your help
    Regards,

    If you are using an OWB version which is 9.0.3.x or earlier, to load a flat file into the database, you should generate SQL loader files and run them either manually or by using a scheduler.
    The new version (9.0.4) supports external tables, so you don't have to use SQL loader. Please refer to the user manual for more details.
    Regards:
    Igor

  • OWB - Flat file to oracle table

    Second message, please read.
    OS- Microsoft windows 2000 5.00.2195 Service Pack 2
    OWB client---9.0.3.33.0
    OWB Repository--9.0.3.0.1
    Database--oracle 9i Enterprise Edition 9.0.1.3.1 with the partioning option Jserver Release9.0.1.3.0
    OEM--9.0.1.0.0
    I have created mapping between the source(flat file)and target(oracle)using Oracle Warehouse Builder. Mapping was validated, configured and it successfully generated without errors. The ‘Deploy’ button and the ‘Run’ button are disabled. How can I run/deploy this mapping ?
    The above OWB copy was downloaded from the Oracle corp website. Is this version an evaluation copy? Alternatively Is this a beta copy ?
    Please help.

    Dear All,
    I have a problem with loading flat files to oracle tables using OWB 9.2
    i created a map with my flat file as a source and my oracle table as a target,and i created a connector between the target location and the flat file location.And i deployed the connector and registered the flat file location using my PC information and the path of the files on my pc.
    I generated the map and saved the .ctl file and deployed the map,and hence trying to load the ctl file using the sql loader as the following:
    C:\Documents and Settings\CORAL 2000>sqlldr owb_rt_rep/owb_rt_rep@ofsa
    control = D:\oracle2\ofsa\owb\codegen\BM_DEBIT_CARDS_DAT_MAP.ctl
    ---where owb_rt_rep is my runtime repository user.
    I got the following error:
    SQL*Loader-350: Syntax error at line 18.
    Expecting "(", found ".".
    INTO TABLE "{{TRG_LOC1.Schema}}"."BM_DEBIT_CARDS_DAT"
    --where trg_loc1 is my target location and bm_debit_cards_dat is my target table.
    I tried to grant from the target schema the privelages to the runtime user incase its the problem,but still it didn't work.
    Any ideas??
    Dina Nagia
    Message was edited by:
    Dina Nagia

  • How to read a txt file and update DB table

    I have to read a table which has some entries in it as plain text file, then I should update my table if the table entries and the data in text file are NOT MATCHING o.w. keep the table entry as it is

    It will helps to u
    data : begin of t_temp occurs 0,
             text(256),
           end of t_temp.
    data : s_file type string.
    SELECTION-SCREEN BEGIN OF BLOCK B1  WITH FRAME  TITLE TEXT-S01.
    PARAMETER: P_FILE LIKE RLGRAP-FILENAME.
    SELECTION-SCREEN : END OF BLOCK B1.
    clear s_file.
    move p_file to s_file.
    uploade SOURCE file to t_tab1
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = s_file
        FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = 'X'
             HEADER_LENGTH                 = 0
             READ_BY_LINE                  = 'X'
             DAT_MODE                      = ' '
             CODEPAGE                      = ' '
             IGNORE_CERR                   = ABAP_TRUE
             REPLACEMENT                   = '#'
             CHECK_BOM                     = ' '
           IMPORTING
             FILELENGTH                    =
             HEADER                        =
      TABLES
        DATA_TAB                      = t_temp
    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.
    Text deleted by Moderator.  Do NOT request points
    Regards
    Saimedha

  • Conversion of fixed length flat files to oracle table

    hello friends
    Please help me getting the code for conversion of fixed length flat files to oracle table
    Should the tables be pre-defined ?????
    In this case the de-limiters are variable length spaces and not commas.Please help me with the same
    Regards,
    -Mahesh

    You can use SQL*Loader to load fixed-width files into Oracle. Instructions on writing appropriate control files are in the Oracle Utilities manual
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96652/ch03.htm#1004687
    You can also use external tables, assuming you're using 9i or later (the syntax for external table definitions is nearly identical to the syntax for SQL*Loader control files).
    You'll need to create a table definition in Oracle. You can either create a "normal" table and use SQL*Loader to populate it or you can create an external table definition.
    Justin

  • Access Flat Files From Oracle Forms Using Simba

    Hi,
    I need to access Flat Files using Simba and display the data using Oracle Forms on Solaris. The Flat Files, Simba and Oracle Forms is on Solaris.
    Thanks.
    Sanjay R Naidu.

    Hi,
    not knowing the flat file's format and why you need SIMBA for it, Forms provides a text_io package that can read from files. You need to parse the file's content and then bring this to a datablock.
    Frank

  • Check flat file column list and column types

    Hi guys!
    Is there any "easy" way to check if the source flat file column names and column types correspond to target datastore column name and types ?
    Regards,
    PsmakR

    Hi,
    There is a way that I already used some time to validate if the data is the one expected into target.
    Conditions:
    1) The file source must have all columns as "String"
    2) All mapping for the analysed columns must be done at "staging area"
    How I do it: (oracle way)
    1) create a database function (by ODI procedure) like:
    create or replace function F$_DATATYPE (pData in varchar2, pDatatype in varchar2, pFormat in varchar2)
    return varchar2 as
    vDate date;
    vNumber number;
    BEGIN
    if pDatatype = 'D' then /* Date */
    vDate := to_date(pData, pFormat);
    elsif pDatatype = 'N' then /* Number */
    if pFormat is null then
    vNumber := to_number(pData);
    else
    vNumber := to_number(pData, pFormat);
    end if;
    end if;
    return 'OK';
    EXCEPTION
    When OTHERS then
    return 'KO';
    end F$_DATATYPE ;
    3) Now you can create a constraint to each source column that you wish to validate data like:
    'OK' = F$_DATATYPE(my_source_column, 'D', 'ddmmyyyy hh24:mi:ss' ) /* to a date column as example */
    4) drag and drop the source datasource (table from model) into package and a E$ table with all errors will be created.
    Does it help you?

  • ODI error while loading data from Flat File to oracle

    Hi Gurus,
    I am getting following error while loading flat file to oracle table :
    ava.lang.NumberFormatException: 554020
         at java.math.BigInteger.parseInt(Unknown Source)
         at java.math.BigInteger.<init>(Unknown Source)
         at java.math.BigDecimal.<init>(Unknown Source)
         at com.sunopsis.sql.SnpsQuery.updateExecStatement(SnpsQuery.java)
         at com.sunopsis.sql.SnpsQuery.addBatch(SnpsQuery.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execCollOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
    The connections between source and target is fine.
    Kindly suggest on this error.
    Thanks
    Shridhar

    Hi John,
    The source is csv file. By default all columns are string type.The integration is failing at step 3 ( load Data).
    I am loading the data from csv file directly to staging table( oracle ).Its one to one mapping.
    Shridhar

  • How to load 2 fields out of 3 from flat file to Oracle in one interface?

    Hi,
    Is there any way to selectively load flat file into oracle within one interface. For example if my flat file has this structure:
    test_cid
    test_ind
    test_data
    and my table is:
    test_code ( correspond to test_cid above)
    test_data (correspond to test_data above)
    That can be done with two interfaces ( first to load the file into oracle staging and second to load the target oracle table from staging oracle table). Is there a way to make it in one interface?
    Edited by: vzaslav on Oct 21, 2009 1:26 PM

    That works for small tables. For big tables you need to accomodate for extra space as you will need to have at least twice as much space for working/integration tables and that is what we are trying to avoid.
    In fact I was able to modify the LKM to load the file into oracle, however my integration step fails and I cannot make it work. To make lkm work one need to change getColList in create working table/generate ctl file steps to getSrcColList. That will create the working table based on source file structure and not on target table structure.
    That doesn't work for IKM however. Any ideas would be appreciated.
    Thank You.

  • Modifying the number of records to skip after importing the flat file

    I imported a flat file and the first row was the column header. I also created an external table for that flat file. The sqlldr is skipping the first record during the load. Is there a way to change this in the flat file module or External table?

    If you marked this row as the header in the sample wizard then you will see the following in the External Table:
    ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    CHARACTERSET WE8MSWIN1252
    STRING SIZES ARE IN BYTES
    NOBADFILE
    NODISCARDFILE
    NOLOGFILE
    SKIP 1
    So the external table is skipping this.
    Now the issue with changing it is interesting because you cannot change this after the sampling... I think this is a bug which I will file.
    Let me know if this answers the question,
    Jean-Pierre

Maybe you are looking for

  • Does it matter if I use Wi-Fi or Ethernet?

    My iMac is right next to the modem for my internet connection.  It has Wi-Fi and an Ethernet so I plug it in.  Is there any benefit, improvement in speed or otherwise to plugging it in with the cable? Thx!

  • Add a blank in webi cross tab

    Hi all, I have a webi cross tab and need to add a blank line in line 3, line 7 and line 9 etc (not regular pattern). How can I do that? If I use the insert row below, webi will add blank row for each line. Please help. Thank you in advanced. Grace

  • Flash to Nib

    Hey everyone, hope this question hasn't been asked yet (I did look but couldnt find anything). I am an app developer who has mainly worked in the native iPhone SDK and recently took a job doing some Flash development. What I am curious is if the pack

  • How to return current month

    Hi, I need to return the current month. I tried this Time."Month" = MonthName(current_date) and Time."Month" = Month(current_date) both give me an error. I should return, Oct-09. Any idea? Regards G.

  • Album Time

    Anyway to display the total playing time for the album currently playing? I have the time per song but not the total time for any of my albums within my Music Library.