Flat file to Oracle using --- LKM File to Oracle (SQLLDR)

Hello All,
I am planning to replicate simple sqlldr process below in ODI. Two things I cannot do, 1) I cannot modify exisiting tables for creating new sequences 2) We need SEQ column to start with 1 always(tried sequence in odi, didn't work as expected). I am not really good at jython nor java to be able to code "SEQ SEQUENCE (MAX,1) " process in knowledge module(LKM File to Oracle (SQLLDR)) during control file creation. please advice.
thanks in advance.
OPTIONS ( SKIP=0)
LOAD DATA
INFILE 'e:\Hyperion\DRM\Loadfile\wfc\WFC_1GLO_LE.txt'
BADFILE 'E:\Hyperion\ODI\Logs\WFC_1GLO_LE.bad'
DISCARDFILE 'E:\Hyperion\ODI\Logs\WFC_1GLO_LE.dsc'
TRUNCATE INTO TABLE "MDM_STAGE"."WFC_1GLO_WFLE"
FIELDS TERMINATED BY X'9'
TRAILING NULLCOLS
SEQ SEQUENCE (MAX,1),
PARENT,
CHILD,
CHILD_ALIAS,
ATTRIBUTE1,
ATTRIBUTE2,
ATTRIBUTE3)

You must modify LKM/IKM to create new sequence for each table. Typically, you should load the file into a C$ table in LKM and then call the sequence to get new key ids in IKM stage. But you can do this in LKMif you know what you are doing.
Duplicate LKM or IKM (in this case, LKM File to Oracle (SQLLDR)). Add two steps to the LKM before load step. In the first new step, add drop sequence statement like DROP SEQUENCE <%=odiRef.getTable("L", "TARG_NAME", "W")%>SEQ. Mark this step as "Ignore Error" so that load does not fail when sequence would not exist during the first run. In the second new step, create the sequence <%=odiRef.getTable("L", "TARGNAME", "W")%>_SEQ. That way your sequence value will start from 1 always. Be careful during the incremental run though.
Happy debugging.

Similar Messages

  • 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

  • Error While using LKM File to Oracle(SQLLDR)

    Hi ,
    When I am trying to load the data from flat file to oracle table using LKM File to oracle (SQLLDR) it is getting failed with below error message.
    SQL*Loader-128: unable to begin a session
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    HPUX-ia64 Error: 2: No such file or directory
    I am able to execute SQLLDR scriptdirectly on the server but When access it through ODI LKM getting this error message. Any help on this please.
    Thaks ,
    Katta

    Is the agent you are executing the interface under located on the same server as the SQLLDR utility?

  • Getting Error while using  LKM File to Oracle(SQLLDR) KM in ODI

    Hi All ,
    Could anyone please help me out on this error which i am getting while using LKM File to Oracle(SQLLDR)
    My Scenario :
    1. I have my CSV file created in one location with some records .
    2. Created a new interface having this CSV file as source(File Technology) and Table as target (Oracle technology)
    3. Here i want to get the contents from csv and store into the target table by using SQLLDR .For that i am using this KM- LKM File to Oracle(SQLLDR)
    4. By Executing the Interface i am getting following error at step 6 -call sqlldr
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (most recent call last):
      File "<string>", line 22, in <module>
    Load Error: See E:\demo1\file/SALES.log for details
      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: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:577)
      at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:468)
      at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2128)
      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)
      at java.lang.Thread.run(Thread.java:662)
    Caused by: Traceback (most recent call last):
      File "<string>", line 22, in <module>
    Load Error: See E:\demo1\file/SALES.log for details
      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.doRaise(PyException.java:219)
      at org.python.core.Py.makeException(Py.java:1166)
      at org.python.core.Py.makeException(Py.java:1170)
      at org.python.pycode._pyx2.f$0(<string>:59)
      at org.python.pycode._pyx2.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)
      ... 19 more
    Here the sales.log file is not created in the above directory .I am not getting  where it is actually went wrong.
    I searched for the solution and i could not find any.Please help me out as it is high priority for me.
    I tried to run SQL*Loader through command prompt and i am able to generate the data in the target table and not getting it through ODI.
    Atleast is there any workaround .Please suggest me.
    Environment Details: ODI_11.1.1.7.0, Oracle DB 11g
    Thanks,
    keerthi

    Which agent are you using to execute?
    Standalone? If standalone, did you start it with OPMN?  I've seen such issues with standalone agent started with OPMN.
    Generally these kind of issues occur when you try to run with standalone agent started with OPMN.
    Because OPMN does not have access to the environment shell variables PATH or ORACLE_HOME and therefore the sqlldr.exe binary (or other Oracle product binary) is not found for execution.
    In this case, you need to specify PATH and ORACLE_HOME variables in opmn.xml file like below for your agent(say "MyStandaloneAgent" in this case)
    <ias-component id="MyStandaloneAgent">
    <process-type id="odiagent" module-id="CUSTOM">
      <environment>
         <variable id="ORACLE_HOME" value="C:\oracle\product\11.2.0\client_1"/>
          <variable id="PATH" value="C:\oracle\product\11.2.0\client_1\BIN;$PATH"/>
    After that, start and stop the agent and try the execution once again.

  • 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

  • Where Dir is creating while using LKM -- File To Oracle(sqlldr) ?

    Hi All,
    I have created an interface (file -table) where I am using LKM -- File To Oracle(sqlldr) .
    But I am getting error -- at the time of creating DIR
    Error :-- Caused By: java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges
    Code :-- create or replace directory dat_dir AS 'TEST_FILE'
    I have requested DBA to give permission for this user to create Dir.
    But he is asking which Directory he should give permission to create directory.
    -- Kindly provide a directory on the server. I will create an Oracle Directory object on it and give read and write privilege to "XYZ" schema.
    1> can any body help me that where this LKM is creating the DIR by default.I mean in which path.
    2> My other query is from where I can get the Agent log. If I have to set up for the log path then from where to set up?
    Not:- I am using ODI 11G
            DB server is different from where ODI is installed.
    Thanks,

    I looked into the KM steps and seems like the file is created in the same directory as your source file.
    Agent log can be found under <server>/logs/oracledi for jee agent or under oracledi/log for standalone agent. For more info please check  Troubleshooting Oracle Data Integrator - 11g Release 5 (11.1.5)

  • 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

  • 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()

  • Loading data file Flat file to Oracle DB

    I have 600/700 MB datafiles on AIX box which need to upload to Oracle using ODI.
    I am considering the below KMs ...which would be more appropriate in this case
    LKM File to Oracle
    LKM File to Oracle (EXTERNAL TABLE)
    Why should we use LKM File to Oracle (EXTERNAL TABLE) at all in any case, and do we need to create seperate table structure for that or ODI would take care internally?

    Hi,
    Loads data from a File to an Oracle staging area using the EXTERNAL TABLE SQL Command.Because this method uses the native EXTERNAL TABLE command, it is more efficient than the standard “LKM File to oracle” when dealing with large volumes of data. However,the loaded file must be accessible from the Oracle server machine.Note that the data of the source file is not duplicated in the Oracle staging area table. This table acts only as a"synonym" of the file. This may sometimes lead to Knowledge Modules if the same file is joined with other large tables in your Interface. For optimization purpose, you canenhance this LKM by adding an extra step that copies then file content to an actual physical table in the Oracle staging area Consider using this LKM if your source is a large flat file and your staging area is an Oracle database.
    Regards,
    surya

  • Problem to Load the data Flat file to Oracle table on Linux Machine

    hi,
    when i change the path of source flat file from windows to Linux machine. Now it gives the error. Basicalyy this file will load the files names into Oracle table. but in windows path its fine. All things r running fine in Linux. when i run the interface it gives this>>>>>>>>
    SQL*Loader: Release 11.2.0.1.0 - Production on Wed Dec 19 16:40:16 2012
    Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
    SQL*Loader-704: Internal error: ulconnect: OCIServerAttach [0]
    ORA-12162: TNS:net service name is incorrectly specified
    Thanks
    Regards,
    Edited by: AMSI on Dec 19, 2012 6:01 AM

    I assume you're using the "LKM file to Oracle SQL Loader".
    For test purpose, can you just try with "LKM file to SQL" (slower) ?
    We could check if the problem comes from the SQL Loader.
    Your unix server has access to the oracle database ?

  • Loading flat files located on a server using the Control Center piece ofOWB

    Loading flat files from a server with OWB
    I am successful loading files with OWB, as long as they resided on my workstation in the C:\ drive. I copied the files to a Linux server into directories owned by Oracle/oinstall, permissions on the directories containing the files are 777. I ran the OWB client from the server with the following results:
    Error
    RPE-01013: SQL Loader reported error condition, number 1.
    SQL*Loader: Release 10.2.0.1.0 - Production on Fri Mar 9 11:15:58 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    SQL*Loader-500: Unable to open file (/u00/data/owb_repos1/state_codes.csv)
    SQL*Loader-553: file not found
    SQL*Loader-509: System error: The system cannot find the file specified.
    SQL*Loader: Release 10.2.0.1.0 - Production on Fri Mar 9 11:15:58 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    SQL*Loader-500: Unable to open file (/u00/data/owb_repos1/state_codes.csv)
    SQL*Loader-553: file not found
    SQL*Loader-509: System error: The system cannot find the file specified.
    I tried to load the file using the control center from both the windows client and the server client. Can I do this from either one?
    I can't import the file in the Design Center from the /u00/data/owb_repos1 directory, it does not show up.
    If anyone has received similiar errors from OWB, please tell me how I can fix this. THANKS!!!
    [d97886@owbtest owb_repos1]$ pwd
    /u00/data/owb_repos1
    [d97886@owbtest owb_repos1]$ ls -la
    total 24
    drwxrwxrwx 2 oracle oinstall 4096 Mar 19 12:14 .
    drwxrwxrwx 18 oracle oinstall 4096 Mar 6 16:41 ..
    -rwxrwxrwx 1 oracle garrett 1481 Mar 8 07:32 state_codes.csv
    [d97886@owbtest owb_repos1]$

    Hi
    This is what i do for my flat files (i am loading my tables from the flat files):
    1) Create location for the files in OWB and it should look something like \\path_to_where_the_files_are. Here you should be able to browse to your Linux box and select the location of the files.
    2) Then check whatever you use (i use TOAD) and you should see in owb schema a directory created there which points to the location of the flat file.
    3) then just follow the guide to sample the files etc and you are good to go.
    Basically OWB has to be able to see the files that are on Linux machine.
    Alternatively you can map your Linux share to your windows box (use samba or something) and use it that way.
    Sorry if it is stating the obvious.
    Hope this helps
    Kind Regards
    Vix

  • Extracting data from Oracle to a flat file

    I'm looking for options to extract data a table or view at a time to a text file. Short of writing the SQL to do it, are there any other ideas? I'm dealing with large volumes of data, and would like a bulk copy routine.
    Thanks in advance for your help.

    Is there any script which i can use for pulling data from tables to a flat file and then import that data to other DB'sFlat file is adequate only from VARCHAR2, NUMBER, & DATA datatypes.
    Other datatypes present a challenge within text file.
    A more robust solution is to use export/import to move data between Oracle DBs.

  • Updating Table using the data from a flat file

    Hi,
    I have a table called emp;
    Name,
    empno,
    accountno,
    amount.
    This table is filled with values of name and empno.
    The columns accountno and amount are empty.
    I have a flat file created in some folder.
    Contents of the flat file can be like this:
    mani | 23 | 123 | 1000
    spr | 22 | 342 | 2133
    asjf | 54 | 432 | 2345
    I need to access the file in the specified location, read all the records one after the other in the flat file and update the table "emp" with the values in the flat file.
    Row after row all the records in the file should be updated to the table.
    I found out some way to do this - its sqlloader - But it loads the data from a file to the table - i dont need that - i need to update the table.
    Let me know how this can be solved ?????????
    Thanks in advance.......

    Just to clarify Andrew's point, you can use external tables as the source table for an UPDATE statement. You cannot use them as a target for an UPDATE statement (i.e. you can't update the text file from an Oracle table).
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Flat file to Oracle Database - Invalid Month

    Hi All
    I am New to XI and trying to create a simple interface between Legacy system (flat file) and Oracle database.
    I have some date fields in the Oracle table.
    When i run the interface it says "invalid month" with some SQL exception number.
    I am using (mm/dd/yyyy) format for the date.
    Is there any conversion i need to do. I am using XML SQL format for Oracle database.
    Any help is appreciated.
    Thanks
    Nagakishore

    Hello,
    Oracle is very picky with the way date is stored. Assume that you have a field datefield that you need to save. In mapping add an attribute hasqQuote and set it to "NO". When mapping the value to the node use to_date as shown below.
    <DateField hasQuot="No">
       TO_DATE("2004-07-20", "yyyy-mm-dd hh:mi:ss")</DateField>
    cheers,
    Naveen

  • 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

Maybe you are looking for