LKM SAP BW to Oracle (SQLLDR) generates sintax error in ABAP code.

Hi Experts,
We are installing a SAP BW KM's in ODI 11g.
Actually, we are able to make reverse ingeneering succesfully.
Now we want to use the LKM in order to extract SAP data.
The KM fails, in step Generate ABAP Code. The code is uploaded to SAP system but with sintaxis errors.
That's the beginning of the SAPAbapExecuteOpenTool_8001_7001.log.
+##################################################+
+############ Open Tool Logger ####################+
+##################################################+
+############ Upload value: 1+
+############ Execute value: 1+
+############ BASE RKM FLAG: 0+
+############ ZRFC_RUN_INSTALL: 1+
+############ Abap Function Name: ZODI_8001_7001+
+############ Sap Host Name: XXXXXXXX+
+############ Sap User Name: XXXX+
+############ Sap password: ********+
+############ Sap Client: 100+
+############ Sap language: ES+
+############ Sap system no: 00+
+############ Sap Connection Pool Name: SAP_ODI_LKM_POOL_GLOBAL+
+############ Sap Connection Pool Size: 10+
+############ Sap Function group name: ZODIBW_LKM_FGRP+
+############ File Delimiter:+
+############ File Name: ZODI_8001_7001.txt+
+############ FTP Host: XXXXXXXXX+
+############ FTP User: ftpbi+
+############ FTP Password: ********+
+############ FTP Passive Mode: 1+
+############ FTP Transfer Time out: 100000+
+############ User abap parameter names: IV_DELIMITER,CHAR1;IV_FILENAME,CHAR255;IV_USER,CHAR35;IV_PWD,CHAR35;IV_HOST,CHAR35;IV_HASHVALUE,CHAR35;IV_PATH,CHAR35;IV_REQUID_L,RSSID;IV_REQUID_H,RSSID+
+############ Abap rfc table parameters: RETURN,BAPIRETURN;ET_FILE_RETURN,BAPIRET2+
+############ Log File Name: /tmp/SAPAbapExecuteOpenTool_8001_7001.log+
+############ OpenHub Path: /tmp/+
+############ Delta Extraction First Request ID : 0+
+############ Delta Extraction Last Request ID : 0+
+############ SAP Development Class : ZODIBW_PCKG+
+############ Max Row Count :+
+############ Fetch Batch Size :+
+############ Hash Value Marker: HVM+
+############ Generated Program:+
*** ODS DSO extraction
TYPES: BEGIN OF ty_final,
+/BIC/AZOFI_UTE00_/BIC/ZFI_SOCOR+
TYPE
+/BIC/AZOFI_UTE00-/BIC/ZFI_SOCOR,+
+/BIC/AZOFI_UTE00_SOURSYSTEM+
TYPE
+/BIC/AZOFI_UTE00-SOURSYSTEM,+
END OF ty_final.
In the SAP GUI shows a sintaxis error.
Functions Module ZODI_8001_7001. line 25
The name "/BIC/AZOFI_UTE00_/BIC/ZFI_SOCOR" is longer that allowed.
+30 characters.+
Really the TYPE "/BIC/AZOFI_UTE00_/BIC/ZFI_SOCOR" has 31 characters.
The sufix "/BIC/" is the "NAMESPACE", a SAP grouping concept.
AZOFI_UTE00 is a table name.
ZFI_SOCOR is a column name.
Are this sufix correct in the APAP code?
Has anyone had that problem?
Any comment will be wellcome.
Thank's in advance.

Hi Somchai,
r U able to resolve ur issue ..........i'm also struck there at the same point.
I am using shared folder for file transfer and my error message is
java.lang.RuntimeException: Error occured in open tool execute method...Error in executing ABAP program...Error in executing ABAP program...Error occurred when creating dataset\\<hostname>\bi-interface$\ZODI_11001_12001_GLOBAL.txt
Thanks.
Edited by: Drona on Mar 26, 2012 7:25 AM

Similar Messages

  • LKM SAP ERP to Oracle (SQLLDR) - ERROR!!!

    Hi ,
    I have error on the step Extract Data with this error
    oracle.odi.sdk.opentools.OpenToolExecutionException: Error occured in open tool execute methodError in executing ABAP programUnable to connect FTP. Check ABAP program
         at oracle.odi.sap.km._OdiSapAbapExecute.execute(_OdiSapAbapExecute.java:466)
         at com.sunopsis.dwg.function.SnpsOpenToolFunction.actionExecute(SnpsOpenToolFunction.java)
         at com.sunopsis.dwg.function.SnpsOpenToolFunction.execute(SnpsOpenToolFunction.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(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)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.j(e.java)
         at com.sunopsis.dwg.cmd.g.z(g.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Thread.java:619)
    and the description of ABAB code is ( cut from the whole ABAB code to show you the part of FTP Coding on ABAB language)
    CALL FUNCTION 'FTP_CONNECT'
    EXPORTING
    user = 'odiadmin'
    password = 'odiadmin'
    host = '10.8.61.200'
    rfc_destination = 'SAPFTPA'
    IMPORTING
    handle = lv_hdl
    EXCEPTIONS
    not_connected = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    clear et_file_return.
    et_file_return-TYPE = gc_error.
    et_file_return-message = 'Unable to connect FTP.'.
    Append et_file_return.
    ELSE.
    IF NOT lc_pasv IS INITIAL.
    REFRESH lt_result.
    lv_cmd = lc_cmd1.
    CALL FUNCTION 'FTP_COMMAND'
    EXPORTING
    handle = lv_hdl
    command = lv_cmd
    TABLES
    data = lt_result
    EXCEPTIONS
    tcpip_error = 1
    command_error = 2
    data_error = 3.
    IF sy-subrc <> 0.
    clear et_file_return.
    et_file_return-TYPE = gc_error.
    et_file_return-message = 'Error in passing FTP .'.
    Append et_file_return.
    ENDIF.
    CALL FUNCTION 'FTP_R3_TO_CLIENT'
    EXPORTING
    fname = iv_filename
    rfc_destination = lc_dest
    character_mode = lc_pasv
    TABLES
    text = gt_result
    EXCEPTIONS
    command_error = 1
    data_error = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    clear et_file_return.
    et_file_return-TYPE = gc_error.
    et_file_return-message = 'Error passing data to FTP .'.
    Append et_file_return.
    ENDIF.
    free : gt_result.
    CONCATENATE lc_cmd2 iv_filename
    INTO lv_cmd SEPARATED BY ' '.
    REFRESH lt_result.
    CALL FUNCTION 'FTP_COMMAND'
    EXPORTING
    handle = lv_hdl
    command = lv_cmd
    TABLES
    data = lt_result
    EXCEPTIONS
    tcpip_error = 1
    command_error = 2
    data_error = 3.
    IF sy-subrc NE 0.
    clear et_file_return.
    et_file_return-TYPE = gc_error.
    et_file_return-message = 'Error in passing FTP .'.
    Append et_file_return.
    EXIT.
    ELSE.
    clear et_file_return.
    et_file_return-TYPE = gc_success.
    et_file_return-message = 'Data Transfer Successful'.
    Append et_file_return.
    ENDIF.
    ELSE.
    clear et_file_return.
    et_file_return-TYPE = gc_error.
    et_file_return-message = 'No data Available.'.
    Append et_file_return.
    CALL FUNCTION 'FTP_DISCONNECT'
    EXPORTING
    handle = lv_hdl.
    CALL FUNCTION 'RFC_CONNECTION_CLOSE'
    EXPORTING
    destination = lc_dest
    EXCEPTIONS
    OTHERS = 1.
    IF sy-subrc <> 0.
    clear et_file_return.
    et_file_return-TYPE = gc_error.
    et_file_return-message = 'Error in RFC connection.'.
    Append et_file_return.
    ENDIF.
    ENDIF.
    ENDIF.
    ELSE.
    clear et_file_return.
    et_file_return-TYPE = gc_error.
    et_file_return-message =
    'Installed ABAP program does not match interface definition'.
    Append et_file_return.
    ENDIF."
    it seem that the error stop on the first exception that will return the message "Unable to connect FTP Server"
    I don't know why ,
    This SAP is 4.6C
    Thanks
    Edited by: somchai on Sep 16, 2009 11:27 PM

    Hi Somchai,
    r U able to resolve ur issue ..........i'm also struck there at the same point.
    I am using shared folder for file transfer and my error message is
    java.lang.RuntimeException: Error occured in open tool execute method...Error in executing ABAP program...Error in executing ABAP program...Error occurred when creating dataset\\<hostname>\bi-interface$\ZODI_11001_12001_GLOBAL.txt
    Thanks.
    Edited by: Drona on Mar 26, 2012 7:25 AM

  • LKM File to Oracle (SQlLDR) giving errors

    Hi,
    I am using ODI to load data from an ascii file ( pipe separated) to an Oracle Table. So I created a Interface with LKM as "File to Oracle (SQlLDR)" and IKM as "SQL Control Append". CKM is "CKM Oracle".
    I am using ODI Studio 11g with jdk 1.6 and am trying this on my windows XP machine. I also have sqlldr installed on my local machine. But still the interface fails with an error. The interface works if i use "LKM File to SQL" but i want to use SQLLDR because i will have high volumes coming in.
    Can you please help.
    Interface Error on Step Call sqlldr :
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (innermost last):
    File "<string>", line 34, in ?
    Load Error: See K:\Project Galaxy\Tech Team\ODIDataFiles/NIN_GL_BALANCES.log for details
    at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
    at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:345)
    at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:169)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java:2374)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java:1615)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execScriptingOrders(SnpSessTaskSql.java:1580)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java:2755)
    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2515)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:534)
    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:449)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1954)
    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1818)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:559)
    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:481)
    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1040)
    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:114)
    at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
    at java.lang.Thread.run(Thread.java:619)
    Jython Code :
    import java.lang.String
    import java.lang.Runtime as Runtime
    from jarray import array
    import java.io.File
    import os
    import re
    import javaos
    def reportnbrows():
    f = open(r"K:\Project Galaxy\Tech Team\ODIDataFiles/NIN_GL_BALANCES.log";, 'r')
    try:
    for line in f.readlines():
    if line.find("MAXIMUM ERROR COUNT EXCEEDED")>=0 :
    raise line
    finally:
    f.close()
    ctlfile = r"""K:\Project Galaxy\Tech Team\ODIDataFiles/NIN_GL_BALANCES.ctl";""
    logfile = r"""K:\Project Galaxy\Tech Team\ODIDataFiles/NIN_GL_BALANCES.log";""
    outfile = r"""K:\Project Galaxy\Tech Team\ODIDataFiles/NIN_GL_BALANCES.out";""
    oracle_sid=''
    if len('')>0: oracle_sid = '@'+''
    loadcmd = r"""sqlldr apps/<@=snpRef.getInfo("DEST_PASS") @>%s control="%s" log="%s" > "%s" """ % (oracle_sid,ctlfile, logfile, outfile)
    rc = os.system(loadcmd)
    if rc <> 0 and rc <> 2:
    raise "Load Error", "See %s for details" % logfile
    if rc==2:
    reportnbrows()

    If the log file is not created, are any of the other files getting created. eg: K:\Project Galaxy\Tech Team\ODIDataFiles/NIN_GL_BALANCES.ctl ?
    If not, what is the Agent you are using to run this interface ? Local or any other ?
    I can think of 2 possibilities:
    1.) The user with whose credentials the agent is has been started, doesnt have permissions to write into the directory above. But if you are using a local agent, then this possibility doesnt hold.
    2.) Try using K:\ProjectGalaxy\TechTeam\ODIDataFile as the path *(REMOVE THE SPACES from the directoryname)*. Create new directories without spaces.
    I think the call to sqlldr is choking on these spaces.

  • SAP in a Oracle server

    Is it possible to apply and use a SAP as a layer on a Oracle Database. Should the DBA have the knowledge on SAP to perform this... ?

    Aman.... wrote:
    I believe SAP is an application which has to use either Oracle or some other database for sure.
    About knowing SAP, I believe, its going to be a tough task because it is not a small application.
    If one is a DBA, he may try to know about it but it would be a big learning curve. Yes, SAP is a VERY large/elaborate suite of software, using a 3-tier architecture that can be spread
    across dozens of servers. It requires a back-end database (often Oracle) to store business data
    and to store much of the software code itself. There is a significant learning curve.
    SAP controls the majority of the Oracle setup/install/physical layout. (Non-OFA-file-placement)
    As a DBA, don't expect to learn over 25% of the application layer. (just the basic architecture)
    SAP app details take SAP-experts years to learn fully, with as much internal expertise as the
    Oracle database itself. (if not more)
    Aman.... wrote:
    And to manage the database, I think SAP offers its own console. SAP software supplies two different interfaces into an Oracle database. (that I know of)
    (1) BR-TOOLS: This is a text-based tool with many sub-menus, that will run on the DB server,
    which provides a wrapper to perform several DBA operations. It allows adding files to tablespaces,
    table-reorgs, index rebuilds, running analyze/stats on all tables, backup+restore of database,
    and several other functions. BRTools is a collection of several executables. You don't HAVE to
    use brtools for everything, but if you are not an experienced DBA, it will take care of many things
    without needing to know the SQl to care for an Oracle database. If you DO know you SQL well,
    then BRTools may take more time to find the right menu, than to do things yourself, or script them.
    After learning the sub-tools, you can use command line args + scripts to call exactly what you need.
    There is also a GUI layer to run with BRtools, but I haven't bothered to put that in place.
    BRtools also includes BR-Backup/BR-Archive/BR-Restore. These are only good for FULL Oracle
    backups and archlog backups. Docs say that they will user RMAN and do Incrementals, but
    we tried to get this capability to work, and it's not ready for real production.
    (2) SAP Transaction/T-Code DB02 (app screen) or "DBAcockpt"
    Within the overall SAP application, there are many screens with specific "T-Code" names for
    specific user roles. (ie:sales, manufacturing, shipping, payroll, etc) There are also some to support
    maint + administration, including some for DBA status of Oracle. Some good screens to look for
    in SAP are called DB02, DB03, DB12, DB24, DB50, SE16, SE11, DBACockpit. Most of these are
    read-only, to show status, history, reports, config, schedules, parameters, alert.log, etc.
    They won't perform the DBA work, but are a good place to find SAP perspective of the Oracle
    behavior & status, instead of writing all of your monitoring SQL from scratch.
    Aman.... wrote:
    I am not sure but I have been told that there is a language called SAP Basis as well for the
    administrative tasks related to SAP. NO... the term "Basis" is not a language, but refers to the SAP environment itself, and the config
    install, upkeep, maint, architecture, layout of SAP. The main "language" used to code SAP
    screens is called "ABAP" and is specific/proprietary to SAP... just like PL/SQL is specific to Oracle.
    Almost all of the ABAP code is parsed+stored in the database, to support server-side processing
    within SAP, and to define the screen behavior for SAP end users. ABAP is very detailed, and very few
    DBAs ever need to know ABAP. There are also more recent portions of SAP that use Java coding
    to define screens + behavior... but much like Oracle, this is more of a recent addition, rather than
    the 'core' of the software architecture.
    Extras: There is an SAP add-on called "CCMS" which performs monitoring and alerts from SAP serves.
    CCMS can monitor certain parts of the Oracle database as well, such as Tablespace%free, or filesystems.
    Also: SAP will generate an "EarlyWatch" report, which tells you performance+tuning problems to look for.
    Note: I have been doing Oracle DBA work in SAP/Unix environment for years,
    and still don't know 'everything' that a DBA may want about SAP...

  • Generated schema based on ABAP

    Hello,
    is there any tool for generating schema or picture based on ABAP like UML diagram, DFD, etc.?
    I have the business requirement to create a report in non-sap system with the same logic like already done custom report in abap
    Best regards
    Radek

    Please refer Auto generating UML diagrams from ABAP code
    I tried to use this technique on a program written using Procedural ABAP but did not find any success. One issue i faced was that I was on SAPGUI 730 and one of the gui components required was available only in SAPGUI 720.
    Hope you have better luck.

  • 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.

  • Problems with LKM File to Oracle (SQLLDR)

    Hi,
    when executed the command Generate CTL file in the LKM File to Oracle (SQLLDR) I get this message:
    Code:
    SnpsOutFile "-File=/prueba2.ctl" "-CHARSET_ENCODING=ISO8859-1"
    OPTIONS (
         SKIP=0,
         ERRORS=0,
         DIRECT=FALSE
    LOAD DATA
    INFILE "E:\PruebaFichero/prueba2.txt" "STR x'0D0A'"
    BADFILE "/prueba2.bad"
    DISCARDFILE "E:\PruebaFichero/prueba2.dsc"
    DISCARDMAX 1
    INTO TABLE USER_01.TC$_0PEDIDOS_CLIENTES
         C1     POSITION(1:3)     
    Error message:
    java.io.FileNotFoundException: \prueba2.ctl (Acceso denegado)
         at java.io.FileOutputStream.open(Native Method)
         at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
         at java.io.FileOutputStream.<init>(FileOutputStream.java:116)
         at com.sunopsis.dwg.tools.OutFile.actionExecute(OutFile.java:110)
         at com.sunopsis.dwg.function.SnpsFunctionBase.execute(SnpsFunctionBase.java:276)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java:3437)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeOdiCommand(SnpSessTaskSql.java:1509)
         at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:44)
         at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.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)
         at java.lang.Thread.run(Thread.java:662)
    Please, if somebody could give me a tip. Thanks!!!

    Hi aetl,
    The work scheme had not been stored properly...
    SnpsOutFile "-File=E:\PruebaFichero/prueba2.ctl" "-CHARSET_ENCODING=ISO8859-1"
    OPTIONS (
         SKIP=0,
         ERRORS=0,
         DIRECT=FALSE
    LOAD DATA
    INFILE "E:\PruebaFichero/prueba2.txt" "STR x'0D0A'"
    BADFILE "E:\PruebaFichero/prueba2.bad"
    DISCARDFILE "E:\PruebaFichero/prueba2.dsc"
    DISCARDMAX 1
    INTO TABLE USER_01.TC$_0PEDIDOS_CLIENTES
         C1     POSITION(1:3)     
    Thanks!!!
    Regards.

  • 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?

  • Problem in control file created through  LKM File to Oracle (SQLLDR)

    I have a fixed file ABC.txt & it has three fields/columns of length ,C1:= 4, C2 :=10 & C3:=6 & I have to use LKM File to Oracle (SQLLDR) to load data into oracle target table.
    I recieved the following error at step CALL SQLLDR in the KM
    "org.apache.bsf.BSFException: exception from Jython: Traceback (innermost last):
    File "<string>", line 3, in ?"
    Then I checked the control file log & found that the position start value & end value was not defined in control file which is created automatically by LKM
    SQL*Loader-350: Syntax error at line 14.
    Expecting positive integer, found ":".
         C1_C1     POSITION(:), "
    The control file created by ODI is & it's missing the position value.
    OPTIONS (
         SKIP=0,
         ERRORS=0,
         DIRECT=FALSE
    LOAD DATA
    INFILE "C:/SNAPON/EOL.txt"
    BADFILE "C:/SNAPON/ABC.bad"
    DISCARDFILE "C:/SNAPON/ABC.dsc"
    DISCARDMAX 1
    INTO TABLE SNAPON_W.C$_0ABC
         C1_C1     POSITION(:),
         C2_C2     POSITION(:),
         C3_C3     POSITION(:)
    Does any one know why the position value is not created in the control file .
    Edited by: neeraj_singh on Mar 3, 2011 1:25 AM

    Hi Neeraj,
    It is happening because you have not selected the mapping execution area as STAGUING .
    Open your interface , click on each and every column of your target datastore , make sure the "Execute On" is marked on "Staging Area".
    Then run your interface.
    Thanks,
    Sutirtha

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

  • Error with LKM File to Oracle(SQLLDR)

    Please help me to resolve error while using LKM File to Oracle(SQLLDR)
    Environment Details: ODI_11.1.1.6.0, Oracle DB 11g
    PFB error message:
    org.apache.bsf.BSFException: exception from Jython:
    Traceback (most recent call last):
      File "<string>", line 22, in <module>
    Load Error: See TEST_SQLLDR.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: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)
    Code:
    logfile = r"""<<absolute_path>>/TEST_SQLLDR.log"""
    Line 21: if rc <> 0 and rc <> 2:
    Line 22:  raise "Load Error", "See %s for details" % logfile

    Hi,
    Actual issue lies with "TEST_SQLLDR.log" generation, this file is not getting created but i found TEST_SQLLDR.ctl,TEST_SQLLDR.out were getting created.
    Can you kindly help me with any guess where i am going wrong.
    Thanks in advance.
    Regards,
    Raghuveer

  • 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.

  • Load on Error in LKM File To Oracle (SQLLDR)

    We are using LKM File To Oracle (SQLLDR) to upload bulk data file into oracle table. We have a data files which contains 1000 records. For testing we create 500 good records and 500 bad records in this file. Now we want to upload this data file into oracle table.
    I set LKM File To Oracle (SQLLDR) LOA_ERROR param = 10000.
    After running this scenario I found an exception at 4 step of this process "Call sqlldr via Jython".
    I can not understand... why this exception is comming.

    Hi,
    It seems like some problem with your data, if you look into the operator log then you can find the name of the log file from the description tab of "Call sqlldr via jython" step. It will give more exception details to fix the issue.
    Thanks,
    Saravanan Rajavel

  • Odi 10g Customize LKM file to oracle(sqlldr) or improve performance

    Hi everyone,
    I am facing an issue about sqlldr.
    Now I should process about 2000 files in one day.and 2000 files have approximately 200 million records.I am merging 100 files to one main file.Then I am reading this file.I am using LKM FILE to Oracle (sqlldr)I have two question:
    1-)Can I use any LKM instead of LKM SQL to Oracle (sqlldr) which is the better and faster than Sqllldr
    2-)İf I will use LKM sqlldr ,How can I improve this LKM.I am thinking of without work table,but I can't this.Becouse my source and target are not same
    Could anyone help me to solve this problem?
    Regards

    Try this method.
    http://gurcanorhan.wordpress.com/2010/11/13/loading-multiple-files-with-odi/
    Cheers,
    Gurcan.

  • IKM File to Oracle (SQLLDR)

    Gurus,
    I am in the process of creating IKM File to Oracle (SQLLDR) per metalink note 762723.1 using ODI version 10.3.5.4, but it doesn't work the way it is described in the note. Thus the questions are:
    1. Does the IKM exist and where can I download one. I can't find it on metalink.
    2. If that doesn't exist, and I have to create one, then I need help figuring out creation of sqlldr control file for fixed length flat file. how do I reference the fixed length file attrbutes ( like field positions/format ) when I create the control file. Here is what I currently have:
         <%=odiRef.getColList("", "[CX_COL_NAME]\tPOSITION([FILE_POS]:[FILE_END_POS])\t"+
              "<?=sqlldrColFormat.get(\u0022[CX_COL_NAME]\u0022,\u0022[SOURCE_DT]\u0022, \u0022[DEST_DT]\u0022, \u0022[COL_FORMAT]\u0022, \u0022[LONGC]\u0022, \u0022[SCALE]\u0022)?>"
         , ",\n\t", "","")%>
    That code does not work.
    Also to avoid any confusion my IKM is set up as multi-connections and I set staging where my files are.
    Thank You.
    Edited by: user12118531 on Nov 9, 2009 3:05 PM

    If you have a situation where you want a "one-step" interface (often the simplest SELECT and INSERT), there is a way in ODI. You should select the "Staging different from target" checkbox on the Definition tab. Then select the schema in the drop-down which corresponds to your source schema (in effect you are saying "the data is already in the staging area"). Now when you go to the Flow tab, you will see it does not offer you the option of an LKM, but of course you do have to have a multi-technology IKM - like "IKM SQL to SQL Append".

Maybe you are looking for

  • New tab page only shows icons when I open a new window, not when I open additional tabs within existing window. Help!

    When I click the + sign to open a new blank tab, I don't see any of my favorite / pinned websites. I can only see this when I start a new browser window, and only for the "landing page". Once I go to any other page, I can not get my new tab page with

  • App sizes?

    I had 2GB of space left on my 3G S according to iTunes. I tried to sync TomTom Western Europe, which iTunes said was 1.67GB, but I got an error saying it wasn't installed because there wasn't enough space left on the phone. I guess that maybe IPA fil

  • Operamini6 error on nokia c2-01

    Hi. I recently installed operamini 6 on my new nokia c2-01..more often than not when trying to open a page, it either hangs or prints "application error" on the screen. Pls help i don't wanna go back to previous versions of operamini.

  • Cross-Company Intransit Inventory Reporting

    Hello All, We have implemented the business content cube 0IC_C03 for Inventory Management.  Now, we have a high priority need to include cross-company intransit inventory which was missing from the business content. There is a help document, "How to

  • MGP 4 sparete vidio and audio file

    Dear all one of question hope some one give me some suggestion for this project , i need to know the concept of MPG 4 format. if i want to us java to write code to separate one MPG4 file by audio one file and vidio one file. how can i start research