OWB or SQL Loader?

Is there some way to create a SQL loader control file using the OWB tool?

Yes, OWB creates all of the ETL process, including sqlloader scripts, temporary tables, transformation. But the answer is pretty long. Creating sqlloader scripts is just one out of many functions OWB performs.
As previously stated, your thread will not have too much echo here as this is an RDBMS specialized forum. By the way, I suggest you to narrow the scope of your question, as the answer, even in the proper forum would be too wide too.

Similar Messages

  • Add "Trailing Nullcolls" to sql loader control files generated by OWB

    Hi gurus,
    I've got a problem loading data with SQL Loader. I need to add the parameter "trailing nullcols" into the SQL Loader control file generated by OWB. I don't want to do this by saving the skript on my hard disk and run it manually, so any ideas where I can put this parameter? I am using OWB 10.1 on a windows 2000 machine.
    Thanks
    Stephan

    Hi,
    I found the solution to problem.
    1; Select the mapping where you map your source flat file to a table.
    2; Right click on the mapping and select "configure"
    3; Go Sources and Targets -> YOUR_TABLE_NAME -> SQL*Loader Parameters
    4; Set Trailing Nullcols = true :-)
    Thank you to anyone looking at this problem.
    Greetings
    Stephan

  • Importing already-made SQL*Loader control files in OWB 10g

    Hi all,
    Suppose that I have a certain amount of already hand-made SQL*Loader control files, say 50 or so.
    Each of these control files have a variable quantity of fields.
    I feel really lazy, so I would like to know if it is possible to import directly these control files instead of re-typing them in the design center. That would save me a lot of time.
    Thanks !
    Burgy

    Hi Burgy
    One option is to use the sqlloader option to generate an external table from the SQLLoader control file (search for generate_only in the sqlloader documentation). If you define the external table in the database you can reverse engineer this into OWB.
    Cheers
    David

  • OWB 10gR2 : How to configure ctl and log locations for Sql*Loader mappings?

    Hi all,
    I'm using OWB 10gR2 to load data in tables with Sql*Loader mappings.
    In my project I have a datafile module and an Oracle module.
    When creating an sql*loader mapping in the oracle module, there is two properties for this mappings that I want to modify. The first is Control File Location and the second is Log File Location. Values for those properties are equal to the data file module location. When trying to change those values I can only chose "Use module configuration location".
    Somebody knows how to configure those properties with different locations as the one of the flat file module?
    What I want to do is to store the data file in one directory, and control file and log file in other directories.
    Thank you for your help.
    Bernard

    Hi,
    You're right, my problem is that the dropdown only show the location associated with the flat file location even if I have other file locations created in the design repository.
    The good news is that I have found the solution to solve the problem :
    1) Edit the file module and in tab "Data locations", add the locations you want to use for control file and log file.
    2) Open configuration window of the mapping and then the dropdown for properties Control File Location and Log File Location show new locations
    I have tested my mapping after changing those properties and it's working.
    Bernard

  • SQL Loader error number 1 in OWB 9.0.4

    I'm trying to execute a flat-file to database table mapping (using SQL*Loader), having set up my locations & connectors. When I execute the mapping, I get the following message:
    Starting Execution COM_COM_MT_STG
    Starting Task COM_COM_MT_STG
    RPE-1013-SQL_LOADER_ERROR SQL Loader reported error condition, number 1.
    Completing Task COM_COM_MT_STG
    Completing Execution COM_COM_MT_STG
    What does that mean and how do I fix it?
    Also, is there any detailed documentation on building such a mapping, that can take you through all the steps, from creating the flat file module to deployment?
    Thanks,
    Carey

    Carey,
    Use the runtime audit browser to access the error log. It will show you what went wrong. You may have to re-register your flat file location with a folder separator at the end... This is a bug.
    Thanks,
    Mark.

  • OWB 9.0.4 :SQL*Loader: Operator POSTMAPPING does not support

    Hi,
    While trying to poulate Analytical Workspace using WB_LOAD_OLAP_CUBE, I got the following validation error
    The analysis of the mapping is not successful under all supported languages and operating modes. Detail is as follows:
    SQL*Loader: Operator POSTMAPPING does not support SQL*Loader generation.
    ABAP: Operator AWPARAMS does not support ABAP generation.
    I dont know what that means. Your help will be appreciated. Do I need apply some post 9.2.0.3 patch?. If yes, please let me know the patch number if available.
    FYI: I am using Oracle9i with 9.2.0.3 patch
    Thanks
    Panneer

    Panneer,
    Does the regular process load from a flat file into a table? This would be implemented as SQL loader mapping... in which case a PL/SQL call cannot be implemented.
    What you could do:
    - Use an external table to read from the flat file.
    - Use the transformation in a process flow. I.e. you first execute the SQL loader mapping and then execute the transformation.
    Mark.

  • Change the mapping generation code from sql*loader to pl/sql

    I want to use a mapping with a flat file operator to generate pl/sql code even if a mapping generate sql*loader code as default.
    I tried to change the Language generation property of the mapping but an API8548 error message is shown. The suggested solution by OWB is to change the language generation code in the property inspector of the mapping.
    I can't use external table because I have to work with a remote machine.
    What i have to do to change the generation code from SQL*Loader to PL/SQL?

    How about breaking this out into 2 mappings? In the first mapping, map a flat file operator to an table using SQL*Loader code. Then define a second mapping using the table as source and therefore generate PL/SQL. Then use process flow to launch the 2nd map to run after completion of first.

  • SQL*Loader does not recognise the \ in directory

    Hi there,
    We have version OWB 9.2.0.2.8 and I am trying to run SQL*Loader. I have tried to use an external table and also got "cannot find file" which I suspect could be the same problem. I then tried to load the data with SQL*Loader and saw that the directory specification of the source data file has "mysteriously" lost the \'s.
    Below is a copy of the .log file with data file specified incorrectly. It should be u:\bi\data\ocean_shipment.csv. Any ideas?
    Data File: u:biocean_shipment.csv
    Bad File: /opt/oracle/product/OWB/9.2.0/owb/temp/u:biocean_shipment.bad
    Discard File: none specified
    (Allow all discards)
    Number to load: ALL
    Number to skip: 0
    Errors allowed: 50
    Bind array: 200 rows, maximum of 50000 bytes
    Continuation: none specified
    Path used: Conventional
    Table "DWHSTG"."S_SHIPMENT_TYPES", loaded from every logical record.
    Insert option in effect for this table: TRUNCATE
    Column Name Position Len Term Encl Datatype
    "SHIPMENT_CD" 1 * , O(") CHARACTER
    "SHIPMENT_NAME" NEXT * , O(") CHARACTER
    "LOAD_DATE" SYSDATE
    SQL*Loader-500: Unable to open file (u:biocean_shipment.csv)
    SQL*Loader-553: file not found
    SQL*Loader-509: System error: No such file or directory
    SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.

    Jean-Pierre,
    That was the first thing I checked - even put it in (with \'s on the configuration parameters of the mapping). ALso unregistered and re-registered the location, ensured I put the slashes in, but to no avail. But I do belief there might be a bug outstanding for the location with directory separators - will check on metalink and let you know.

  • SQL*Loader-273: READBUFFERS may be used only in direct path.

    Hi,
    I am trying to upgrade from OWB 10G to 11G. y map from flat file to stage maps work fine in 10G. when i upgrade the maps to 11G i get the error:
    Error
    RPE-01013: SQL Loader reported error condition, number 1.
    SQL*Loader: Release 11.1.0.7.0 - Production on Fri May 8 15:10:20 2009
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    SQL*Loader-273: READBUFFERS may be used only in direct path.
    SQL*Loader: Release 11.1.0.7.0 - Production on Fri May 8 15:10:20 2009
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    SQL*Loader-273: READBUFFERS may be used only in direct path.
    if i go to configure and make the READBUFFERS to = 0 then the map works fine. this used to work fine in 10G. I compared the .CTL file of sql loder and i notice the 10G sql loader file did not care for this property being set. while in 11G .ctl file i see the readbuffer property being set. though i can make the map run in 11G i can not go to each map and then reset it. ...Please help.
    Thanks

    IN 10 G environment
    a.)Direct path = False.
    b.) Read buffers = 4 (defaults to 4)
    10G Code generated :
    -- Oracle Warehouse Builder
    -- Generator Version : 10.1.0.4.0
    -- Created Date : Mon May 11 10:16:31 CDT 2009
    -- Modified Date : Mon May 11 10:16:31 CDT 2009
    -- Created By : owb_repository
    -- Modified By : owb_repository
    -- Generated Object Type : SQL*Loader Control File
    -- Generated Object Name : GFHGF
    -- © 2003 Oracle Corporation. All Rights Reserved.
    OPTIONS ( ERRORS=50, BINDSIZE=50000, ROWS=200, READSIZE=65536)
    LOAD DATA
    CHARACTERSET WE8MSWIN1252
    INFILE 'C:\EAND.dat'
    INTO TABLE "{{ORACLE10G.Schema}}"."EAND"
    APPEND
    REENABLE DISABLED_CONSTRAINTS
    FIELDS
    "PERSON_SSN_SOURCE" POSITION (3:3) CHAR
    IN 11 G environment
    a.)Direct path = False.
    b.) Read buffers = 4 (for new maps crated defaults to 0)
    -- Generator Version : 11.1.0.7.0
    -- Created Date : Mon May 11 10:06:37 CDT 2009
    -- Modified Date : Mon May 11 10:06:37 CDT 2009
    -- Created By : OWB_WUSER
    -- Modified By : OWB_WUSER
    -- Generated Object Type : SQL*Loader Control File
    -- Generated Object Name : "GFHGF"
    -- Copyright © 2000, 2007, Oracle. All rights reserved.
    OPTIONS (BINDSIZE=50000,ERRORS=50,ROWS=200,READSIZE=65536)
    LOAD DATA
    CHARACTERSET WE8MSWIN1252
    INFILE '{{ETL_FILE_LOC.RootPath}}{{}}EAND.dat''
    BADFILE '{{ETL_FILE_LOC.RootPath}}{{}}EAND'
    READBUFFERS 4
    CONCATENATE 1
    INTO TABLE "STAG"."EAND"
    TRUNCATE
    REENABLE DISABLED_CONSTRAINTS
    "PERSON_SSN_SOURCE" POSITION (3:3) CHAR
    my question is even as both the properties in 10G and 11G are same why does .ctl file generated in 11G has statement "READBUFFERS 4" while this is neglected in owb 10G generated .ctl file? Please Help.
    Edited by: user591315 on May 11, 2009 8:14 AM
    Edited by: user591315 on May 11, 2009 8:16 AM

  • Deploy sql loader mapping

    Hi,
    I have a problem with OWB when I try to start a mapping (sql loader) after deploy. The problem is that when I start the execution of the mapping, the control file of the sql loader is created not in Unix (where I have defined the location of both input file and control file) but in the pc with my OWB client. For this reason the execution fail because it doesn't find the input file (that i have put in the unix machine).
    Is there a configuration for the client or for the server?
    Thanks

    I start the control center from my pc, but with the credential of the server unix (Host, port, username, password and service name).
    Is it correct or must i start the control center from the unix machine?
    Thanks for the replay.

  • Execute SQL*Loader mapping

    Hi all,
    I'm trying to execute a deployed OWB SQL*Loader mapping, using the oem_exec_template.sql script. I've got the following error:
    Stage 1: Decoding Parameters
    | location_name=ORA_LOC_DWH
    | task_type=SQLLoader
    | task_name=MAP_SA_AGGK_FEVO
    Stage 2: Opening Task
    declare
    ERROR at line 1:
    ORA-20001: Task not found - Please check the Task Type, Name and Location are
    correct.
    ORA-06512: at line 268
    I can execute the mapping out of the OWB client and I'm also have no problems to execute a PLSQL mapping via that script.
    Did anybody use this script for a SQL*Loader mapping before?
    Regards Uwe

    Hi Jean-Perre,
    the names of the location and the mapping should be OK. Only the mapping STEP_TYPE seems to be different (UPPERCASE) to the one which is used inside of your script.
    OMB+> OMBRETRIEVE ORACLE_MODULE 'ORA_DWH_SA' GET REF LOCATION
    ORA_LOC_DWH
    OMB+> OMBCC 'ORA_DWH_SA'
    Context changed.
    OMB+> OMBLIST MAPPINGS
    MAP_SA_AGGK_FEVO MAP_SA_AGGK_KK_KONTO MAP_SA_AGGK_KK_KUNDE MAP_SA_BCV_YT
    OMB+> OMBRETRIEVE MAPPING 'MAP_SA_AGGK_FEVO' GET PROPERTIES (STEP_TYPE)
    SQLLOADER
    The mapping is deployed, otherwise i couldn't execute the mapping out of the OWB client.
    Regards Uwe

  • How do I incorporate the 'WHEN' operator in a SQL*Loader  mapping?

    Environment:
    OWB 10g
    Repository: 9.2.0.4
    Target: 9.2.0.4
    O/S: AIX 5.2
    I have the need to incorporate the WHEN clause in a flat file mapping to eliminate some unneeded rows in the flat file.
    I can't seem to find the configuration option or property setting or whatever it takes to get that done.
    I thought it would be part of the FILTR operator but I kept getting an 'Invalid expression' error message.
    In this case I want to ignore any rows that have a 'M', 'D' or 'S' in the first column.
    Many thanks for all your help.
    Gary

    Jean-Pierre
    Thanks very much for your quick response.
    One last point and we should drop this in favor of other more urgent issues we both ahve to deal with.
    The data is coming from a comma delimited (CSV) file using a comma ',' and optional quotes (") as field separators.
    The first column of 'good' data is read as an INTEGER EXTERNAL because of course it is a number. However, the 'bad' rows I want to eliminate have character text in them where I would normally find numbers and they all start with 'D','M' or 'S'.
    I don't have an actual column in the data file or resulting table definition that represents that first character that I'm trying to test on. Hence my use of (1) to reporesent the 1st character of data on the line regardless of whether its numeric or character.
    As I stated, the syntax works fine in SQL*Loader when I typed the WHEN clause in manually.
    I guess if there was a way to define a pseudo column that could be defined using the POSITION notation and everything else using the variable length delimited notation I could test on that psuedo column. I don't want the pseudo column to appear in my resulting table so that seems to be an issue. Enough.
    Since I've worked around it using external tables for this issue I'm not going to spend any more time on it today.
    As usual, many thanks for your help.
    Have a great day! I'll be back soon with another issue :-)>
    Gary

  • How to load a default value in to a column when using sql loader

    Im trying to load from a flat file using sql loader.
    for 1 column i need to update using a default value
    how to go about this?

    Hi!
    try this code --
    LOAD DATA
       INFILE 'sample.dat'
       REPLACE
       INTO TABLE emp
       empno   POSITION(01:04) INTEGER EXTERNAL NULLIF empno=BLANKS,
       ename   POSITION(06:15)  CHAR,
       job         POSITION(17:25)  CHAR,
       mgr       POSITION(27:30)  INTEGER EXTERNAL NULLIF mgr=BLANKS,
       sal        POSITION(32:39)  DECIMAL EXTERNAL NULLIF sal=BLANKS,
       comm   POSITION(41:48)  DECIMAL EXTERNAL DEFAULTIF comm = 100,
       deptno  POSITION(50:51)  INTEGER EXTERNAL NULLIF deptno=BLANKS,
       hiredate POSITION(52:62) CONSTANT SYSDATE
      )-hope this will solve ur purpose.
    Regards.
    Satyaki De.

  • How can we tell if SQL*Loader is working on a TABLE?

    We have a process that requires comparing batches with LDAP information. Instead of using an LDAP lookup tool, we get a nightly directory file, and import the two COLUMNs we want via SQL*Loader (REPLACE) into an IOT. Out of three cases, two just check the first COLUMN, and the third needs the second COLUMN as well.
    We did not think of using External TABLEs, because we cannot store files on the DB server itself.
    The question arises, what to do while the file is being imported. The file is just under 300M, so it takes a minute or so to replace all the data. We found SQL*Loader waits until a transaction is finished before starting, but a query against the TABLE only waits while it is actually importing the data. At the beginning of SQL*Loader's process, however, a query against the TABLE returns no rows.
    The solution we are trying right now is, to have the process that starts SQL*Loader flip a flag in another TABLE denoting that it is unavailable. When it is done, it flips it back, and notes the date. Then, the process that queries the information, exits if the flag is currently 'N'.
    The problem, is, what if SQL*Loader starts inbetween the check of the flag, and the query against the TABLE. How do we guarantee that it is still not being imported.
    I can think of three solutions:
    1) LOCK the ldap information TABLE before checking the flag.
    2) LOCK the record that the process starting SQL*Loader flips.
    3) Add a clause to the query against the TABLE checks that there are records in the TABLE (AND EXISTS(SELECT * FROM ldap_information).
    The problem with 3) is that the process has already tagged the batches (via a COLUMN). It could, technically reset them afterwards, but that seems a bit backwards.

    Just out of curiosity, are you aware that Oracle supplies a DBMS_LDAP package for pulling information from LDAP sources? It would obviously be relatively easy to have a single transaction that deletes the existing data, loads the new data via DBMS_LDAP, and commits, which would get around the problem you're having with SQL*Loader truncating the table.
    You could also have SQL*Loader load the data into a staging table and then have a second process either MERGE the changes from the staging table into the real table (again in a transactionally consistent manner) or just delete and insert the data.
    Justin

  • Loading two tables at same time with SQL Loader

    I have two tables I would like to populate from a file C:\my_data_file.txt.
    Many of the columns I am loading into both tables but there are a handful of columns I do not want. The first column I do not want for either table. My problem is how I can direct SQL Loader to go back to the first column and skip over it. I had tried using POSITION(1) and FILLER for the first column while loading the second table but I got THE following error message:
    SQL*Loader-350: Syntax error at line 65
    Expecting "," or ")" found keyword Filler
    col_a Poistion(1) FILLER INTEGER EXTERNALMy control file looks like the following:
    LOAD DATA
    INFILE 'C:\my_data_file.txt'
    BADFILE 'C:\my_data_file.txt'
    DISCARDFILE 'C:\my_data_file.txt'
    TRUNCATE INTO TABLE table_one
    WHEN (specific conditions)
    FIELDS TERMINATED BY ' '
    TRAILING NULLCOLS
    col_a FILLER INTEGER EXTERNAL,
    col_b INTEGER EXTERNAL,
    col_g FILLER CHAR,
    col_h CHAR,
    col_date DATE "yyyy-mm-dd"
    INTO TABLE table_two
    WHEN (specific conditions)
    FIELDS TERMINATED BY ' '
    TRAILING NULLCOLS
    col_a POSITION(1) FILLER INTEGER EXTERNAL,
    col_b INTEGER EXTERNAL,
    col_g FILLER CHAR,
    col_h CHAR,
    col_date DATE "yyyy-mm-dd"
    )

    Try adapting this for your scenario.
    tables for the test
    create table test1 ( fld1 varchar2(20), fld2 integer, fld3 varchar2(20) );
    create table test2 ( fld1 varchar2(20), fld2 integer, fld3 varchar2(20) );
    control file
    LOAD DATA
    INFILE "test.txt"
    INTO TABLE user.test1 TRUNCATE
    WHEN RECID = '1'
    FIELDS TERMINATED BY ' '
    recid filler integer external,
    fld1 char,
    fld2 integer external,
    fld3 char
    INTO TABLE user.test2 TRUNCATE
    WHEN RECID <> '1'
    FIELDS TERMINATED BY ' '
    recid filler position(1) integer external,
    fld1 char,
    fld2 integer external,
    fld3 char
    data for loading [text.txt]
    1 AAAAA 11111 IIIII
    2 BBBBB 22222 JJJJJ
    1 CCCCC 33333 KKKKK
    2 DDDDD 44444 LLLLL
    1 EEEEE 55555 MMMMM
    2 FFFFF 66666 NNNNN
    1 GGGGG 77777 OOOOO
    2 HHHHH 88888 PPPPP
    HTH
    RK

Maybe you are looking for