Loading file name sqlldr

Hi
I have a directory which get almost 10-20 files ever day, i have to laod them using sql loader.
I have to load a file name i acolumnas well which ever file sqlloader is processing.
file1
file2
file3
file4
when sql loader has to laod
in the below table.
column1 column 2 file name
so while processing file1 all the 2 column getr loaded with the additional column name file1 under the column file name.
since i am running sqlloaded as a scripts under the for loop i can't provide file name in the control file otherwise i could write the file name i am loading all the files seperately.
Any help will be greate help.
Thanks
Rajesh

SQL*Loader will not pass through the filename for you to be able to insert into a table.
You will need to have a controlling o/s script that picks up the file name, calls sql*loader and then also call's an SQL script (using sql*plus?) to insert the filename into a.n.other table.

Similar Messages

  • What is Loader File Name (FBL) for loading Languages to Employee?

    What is Loader File Name (FBL) for loading Languages to Employees?

    Hi, The best place to search for questions like this one is OTN, Oracle Technology Network. If you have any  question about CLOUD and partnering with Oracle we will be more than glad to help! Thank you!

  • Loading File name and file contents into two separate tables using Sqlloadr

    Hi All,
    I have situtation like to load File contents into One table and File name into one table . File comes with .txt extension
    Example :
    File name : product_09_abc.txt
    File contents :
    Productcode
    ABC
    CDE
    EFT
    Can you please help me out this how can we acheive this using SQLLOADER.

    SQL*Loader will not pass through the filename for you to be able to insert into a table.
    You will need to have a controlling o/s script that picks up the file name, calls sql*loader and then also call's an SQL script (using sql*plus?) to insert the filename into a.n.other table.

  • How to Load file name in to Oracle table column

    hi,
    I am loading data from flat file(TEST_GRET.DMP) to oracle table.
    while the Target Oracle table has four coloumns, in which one is File_name.
    I want to load the FILE NAME into that table too. as there is no ????
    how it can be done???
    Regards,

    If you are loading multiple files using a single interface, using variables, Bhabani's first solution and my solution are good.
    If you only have one interface with your datastore, you know the file name and it won't change, you can use Bhabani's second solution or mine.
    I did not test my solution but it is quite simple to test.
    Just put the code provided for the mapping of your target column.
    This solution has the advantage it should always work.
    Regards

  • Batch Loader File Name - Replace/Append?

    We employ a custom/smart merge in FDM that automatically removes previously loaded intersections in HFM 11.1.2.1 by appending NODATA lines at the end of our load file based on the information included in the previous load file.  In the FDM configurations, users are only able to use the MERGE option when loading data so that this functionality is not subject to override.
    We have just purchased and developed a Batch Loader solution that we'd like to pair with this smart merge functionality and I want to be sure that we are requiring appropriate file name configuration based on a MERGE data load setting.  If I understand the file name conventions for batch loader correctly, the "RA", "RR", "AR", "AA" suffix at the end of the loader determines whether batch loader runs through a replace or append.
    If we want a location's file to replace the previous load file within FDM during the import step, but load all data files to HFM using a merge, should my filename end with "RA"?  Also, if someone accidentally uses RR, does changing the Adapter Option (FM11X-G5-ELoadOptMethodVal) to only show Merge protect against a replace load?
    Thanks in advance!
    S

    The Load Tags are as follows:
    Load Method for FDM: R,A
    Load method for Target System: R,A
    That is correct, if you want to do a replace in FDM and a Merge in HFM you would use RA or RM.
    RR would perform a replace in FDM and a Replace in HFM.
    You would need to test removing the Replace from the option in the adapter and see if it would fail for load.    

  • Using sqlldr to load XML files and the file name ?  or access the file name

    I can use sqlldr to load the XML files when I declare the target table of XMLTYPE, but I need to load the filename and a sequence also with the XML in a table so we can mark wether the file passed validation or not.
    something like ....
    Create table test1
    lobfn varchar(200),
    load_number number,
    XML_COL XMLTYPE
    --------------- here is my sqlldr command
    sqlldr xml_user/xml_user load_test1.ctl
    LOAD DATA
    INFILE *
    INTO TABLE test1
    append
    xmltype(XML_COL)
    lobfn FILLER char TERMINATED by ',',
    XML_COL LOBFILE(lobfn) TERMINATED BY EOF
    BEGINDATA
    filename1.xml
    filename2.xml
    filename64.xml
    sqlldr comes back and says "commit point reached - logical record count 64
    but when I select count(*) from test1; it returns 0 rows.
    and when I
    SELECT X.* FROM tst1 P2,
    XMLTable ( '//XMLRoot//APPLICATION'
    PASSING P2.XML_COL
    COLUMNS
    "LASTNAME" CHAR(31) PATH 'LASTNAME',
    "FIRSTNAME" CHAR(31) PATH 'FIRSTNAME'
    ) AS X;
    It tells me invalid identifier ,
    Do I need to use a function to get the XML_COL as a object_value ???
    But when I create the table like
    create table test1 of XMLTYPE;
    and use sqlldr it works, but I dont have the file name, or dont know how to access it ??
    and I can use
    SELECT X.* FROM tst1 P2,
    XMLTable ( '//XMLRoot//APPLICATION'
    PASSING P2.object_value
    COLUMNS
    "LASTNAME" CHAR(31) PATH 'LASTNAME',
    "FIRSTNAME" CHAR(31) PATH 'FIRSTNAME'
    ) AS X;

    BTW
    Here's a trivial example of what you appear to be trying to do..
    C:\xdb\otn\sqlLoader>sqlplus scott/tiger @createTable
    SQL*Plus: Release 10.2.0.2.0 - Production on Wed Aug 2 22:08:10 2006
    Copyright (c) 1982, 2005, Oracle.  All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL> DROP TABLE TEST_TABLE
      2  /
    Table dropped.
    SQL> CREATE TABLE TEST_TABLE
      2  (
      3    filename    VARCHAR2(32),
      4    file_content xmltype
      5  )
      6  /
    Table created.
    SQL> quit
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
    With the Partitioning, OLAP and Data Mining options
    C:\xdb\otn\sqlLoader>type sqlldr.ctl
    LOAD DATA
    INFILE 'filelist.txt'
       INTO TABLE TEST_TABLE
       FIELDS TERMINATED BY ','
        FILENAME       CHAR(32),
        FILE_CONTENT   LOBFILE(FILENAME) TERMINATED BY EOF
    C:\xdb\otn\sqlLoader>type filelist.txt
    testcase1.xml
    testcase2.xml
    C:\xdb\otn\sqlLoader>type testcase1.xml
    <foo/>
    C:\xdb\otn\sqlLoader>type testcase1.xml
    <foo/>
    C:\xdb\otn\sqlLoader>sqlldr userid=SCOTT/TIGER control=sqlldr.ctl log=sqlldr.log -direct
    SQL*Loader: Release 10.2.0.2.0 - Production on Wed Aug 2 22:08:11 2006
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Load completed - logical record count 2.
    C:\xdb\otn\sqlLoader>sqlplus scott/tiger
    SQL*Plus: Release 10.2.0.2.0 - Production on Wed Aug 2 22:08:18 2006
    Copyright (c) 1982, 2005, Oracle.  All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL> select * from TEST_TABLE
      2  /
    FILENAME
    FILE_CONTENT
    testcase1.xml
    <foo/>
    testcase2.xml
    <baa/>
    SQL>
    If you are interested in the 11g beta program please contact me directory at
    markDOTdrakeAToracleDOTcom

  • How to add file name by sqlldr

    Hi All,
    Can anyone kindly give me an approach to use a variable in a sql loader ctl file. I am trying to add the value before each insert of row and this value is the file name. So the question is how can I dynamically identify the input data file name, if not, is there a way I can make my SQL Loader to insert a value (file name) before each row into the table.
    my control file like below ,
    LOAD DATA
    INTO TABLE "user"."AAA_BILL"
    APPEND
    REENABLE DISABLED_CONSTRAINTS
    EXCEPTIONS "USER"."AAA_BILL"
    FIELDS TERMINATED BY '|'
    (Streamnumber ,
    MSID ,
    UserName,
    Domain,
    UserIP ,
    Correlation_ID)and the loading script as below ,
    for j in $(GetFileNames)
    do
    let i=$i+1
    sqlldr user/pass control="/u01/ctrlfile/loadBILLDtl.ctl" log=$WiMAXlog$j.log data=$WiMAXsource$j   bad=$WiMAXlog$j.bad
    GetFileNames ()
    sqlplus -s user/pass << EOF
    set echo off
    SET FEEDBACK OFF
    SET heading off
    set pagesize 50000
    select bi_file_name from dbm_bill_head where bi_file_name like 'WiMAX_%' and bi_auto_status=35  order by bi_file_name;
    EOF
    }What I am trying to accomplish here is, I want to insert the data file name along with other data in the data file into table AAA_BILL and this table has the file name coloumn, but the data file does not contain the file name as one of its contents.
    Note : my DB is 10G and OS is RHEL
    any help please ,
    Edited by: 876602 on 18/12/2011 05:44 ص

    Hi,
    Now it is working just well.
    I kept 2 variables: one with the POSIX file path for my do shell script and another one (using the provided tip here) for the Applescript function.
    The only problem I had left was that teh file was writen in, maybe, UTF8 so I added to the open for access a "as text" at the end to make the file as straith text file.
    I always found languages like Applescript a little bit hard to learn. Strangely, I have less difficulty with Cocoa!
    Thanks for avery one here!

  • Error loading xml file with sqlldr

    Hi there,
    I am having trouble loading an xml file via sqlldr into oracle.
    The version i am running is Oracle Database 10g Release 10.2.0.1.0 - 64bit Production and the file size is 464 MB.
    It ran for about 10 hours trying to load the file and then threw up the error:
    ORA-22813: operand value exceeds system limits.
    I have loaded a file of 170MB using the same process succesfully.
    Any Ideas?
    Cheers,
    Dan.

    Looked a bit into the issue (ORA-22813) and although it can be caused by a lot of issues varrying database versions, you could have a go at sizing up your PGA database parameter. See Oracle support Doc ID 837220.1 for more info.
    The following might help
    CREATE OR REPLACE PROCEDURE show_pga_memory (context_in IN VARCHAR2 DEFAULT NULL)
    SELECT privileges required on:
      SYS.v_$session
      SYS.v_$sesstat
      SYS.v_$statname
    Here are the statements you should run:
    GRANT SELECT ON SYS.v_$session  TO <schema>;
    GRANT SELECT ON SYS.v_$sesstat  TO <schema>;
    GRANT SELECT ON SYS.v_$statname TO <schema>;
    IS
      l_memory NUMBER;
    BEGIN
      SELECT st.VALUE
        INTO l_memory
        FROM SYS.v_$session se, SYS.v_$sesstat st, SYS.v_$statname nm
      WHERE se.audsid = USERENV ('SESSIONID')
        AND st.statistic# = nm.statistic#
        AND se.SID = st.SID
        AND nm.NAME = 'session pga memory';
      DBMS_OUTPUT.put_line (CASE WHEN context_in IS NULL
                              THEN NULL
                              ELSE context_in || ' - '
                            END
                            || 'PGA memory used in session = ' || TO_CHAR (l_memory));
    END show_pga_memory;
    /

  • Loading a table from multiple input files using sqlldr

    Hi,
    For my project i need to load into a table by joining two input files using sqlldr. For example,
    I have a file1, which has values
    name,salary,ssn
    and file2 which has values for
    ssn,location,country
    now i need to load these values into a table say employee_information by joining both input files. both input files can be joined using ssn as common field.
    Any idea how to do this??
    Thanks in advance
    Satya.

    Hi,
    What is the size of the files. If possible mail me the sample files, And the structure of table. Is the <ssn> from first file and second will have seperate columns in the table or we have to merge it.
    SKM

  • Sqlldr does not understand unicode characters in file names

    Hello,
    I am trying to call sqlldr from a .net application on Windows to bulk load some data. The parameter, control, data, log files used by sqlldr, are all located in the C:\Configuración directory (note the unicode character in the directory name).
    Here is my parfile:
    control='C:\Configuración\SystemResource.ctl'
    direct=true
    errors=0
    log='C:\Configuración\SystemResource.log'
    userid=scott/tiger@orasrv
    When I make a call as
    sqlldr -parfile='C:\Configuración\SystemResource.par'I am getting
    SQL*Loader-100: Syntax error on command-line
    If I run it as
    sqlldr -parfile='C:\Config~1\SystemResource.par'I am getting
    SQL*Loader-522: lfiopn failed for file (C:\Configuraci├│n\SystemResource.log)
    If I remove the log= parameter from the parameter file, I am getting
    SQL*Loader-500: Unable to open file (C:\Configuraci├│n\SystemResource.ctl)
    SQL*Loader-553: file not found
    SQL*Loader-509: System error: The system cannot find the file specified.
    Can anyone suggest a way to handle unicode/extended ASCII characters in file names?
    Thanks,
    Alex.

    Werner, thank you for replying to my post.
    In my real application, I actually store the files in %TEMP%, which on Spanish and Portuguese Windows has "special" characters (e.g. '...\Administrador\Configuración local\Temp\'). In addition, you can have a user with the "special" characters in the name which will become part of %TEMP%.
    Another problem is that 8.3 name creation may be disabled on NTFS partitions.
    Problem #3 is that the short file names that have "special" characters are not converted correctly by GetShortPathName windows API, e.g. "Configuración" will be converted to "Config~1", but for "C:\ración.txt" the api will return the same "C:\ración.txt", even though dir /x displays "RACIN~1.TXT". Since I am creating the parameter and control files programmatically from a .net application, I have to PInvoke GetShortPathName.
    Any other ideas?
    Thanks,
    Alex.

  • Different log file name in the Control file of SQL Loader

    Dear all,
    I get every day 3 log files with ftp from a Solaris Server to a Windows 2000 Server machine. In this Windows machine, we have an Oracle Database 9.2. These log files are in the following format: in<date>.log i.e. in20070429.log.
    I would like to load this log file's data to an Oracle table every day and I would like to use SQL Loader for this job.
    The problem is that the log file name is different every day.
    How can I give this variable log file name in the Control file, which is used for the SQL Loader?
    file.ctl
    LOAD DATA
    INFILE 'D:\gbal\in<date>.log'
    APPEND INTO TABLE CHAT_SL
    FIELDS TERMINATED BY WHITESPACE
    TRAILING NULLCOLS
    (SL1 DATE "Mon DD, YYYY HH:MI:SS FF3AM",
    SL2 char,
    SL3 DATE "Mon DD, YYYY HH:MI:SS FF3AM",
    SL4 char,
    SL5 char,
    SL6 char,
    SL7 char,
    SL8 char,
    SL9 char,
    SL10 char,
    SL11 char,
    SL12 char,
    SL13 char,
    SL14 char,
    SL15 char)
    Do you have any better idea about this issue?
    I thought of renaming the log file to an instant name, such as in.log, but how can I distinguish the desired log file, from the other two?
    Thank you very much in advance.
    Giorgos Baliotis

    I don't have a direct solution for your problem.
    However if you invoke the SQL loader from an Oracle stored procedure, it is possible to dynamically set control\log file.
    # Grant previleges to the user to execute command prompt statements
    BEGIN
    dbms_java.grant_permission('bc4186ol','java.io.FilePermission','C:\windows\system32\cmd.exe','execute');
    END;
    * Procedure to execute Operating system commands using PL\SQL(Oracle script making use of Java packages
    CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "Host" AS
    import java.io.*;
    public class Host {
    public static void executeCommand(String command) {
    try {
    String[] finalCommand;
    finalCommand = new String[4];
    finalCommand[0] = "C:\\windows\\system32\\cmd.exe";
    finalCommand[1] = "/y";
    finalCommand[2] = "/c";
    finalCommand[3] = command;
    final Process pr = Runtime.getRuntime().exec(finalCommand);
    new Thread(new Runnable() {
    public void run() {
    try {
    BufferedReader br_in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
    String buff = null;
    while ((buff = br_in.readLine()) != null) {
    System.out.println("Process out :" + buff);
    try {Thread.sleep(100); } catch(Exception e) {}
    catch (IOException ioe) {
    System.out.println("Exception caught printing process output.");
    ioe.printStackTrace();
    }).start();
    new Thread(new Runnable() {
    public void run() {
    try {
    BufferedReader br_err = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
    String buff = null;
    while ((buff = br_err.readLine()) != null) {
    System.out.println("Process err :" + buff);
    try {Thread.sleep(100); } catch(Exception e) {}
    catch (IOException ioe) {
    System.out.println("Exception caught printing process error.");
    ioe.printStackTrace();
    }).start();
    catch (Exception ex) {
    System.out.println(ex.getLocalizedMessage());
    public static boolean isWindows() {
    if (System.getProperty("os.name").toLowerCase().indexOf("windows") != -1)
    return true;
    else
    return false;
    * Oracle wrapper to call the above procedure
    CREATE OR REPLACE PROCEDURE Host_Command (p_command IN VARCHAR2)
    AS LANGUAGE JAVA
    NAME 'Host.executeCommand (java.lang.String)';
    * Now invoke the procedure with an operating system command(Execyte SQL-loader)
    * The execution of script would ensure the Prod mapping data file is loaded to PROD_5005_710_MAP table
    * Change the control\log\discard\bad files as apropriate
    BEGIN
    Host_Command (p_command => 'sqlldr system/tiburon@orcl control=C:\anupama\emp_join'||1||'.ctl log=C:\anupama\ond_lists.log');
    END;Does that help you?
    Regards,
    Bhagat

  • Sql loader:loading data file name to one of the tabe column.

    Hi,
    I want to load the data file name also to one of the table column.
    Table structure:
    File_Name varchar2
    Name varchar2
    Age number
    Data File Format:
    Vijay|24
    Anandh|24
    Senthil|26
    In the above eg how to write a control file to load the data file name to the File_Name column of the table.
    Note:
    The shell script will first pick up the data files to be loaded and calls the control file.
    Thanks,
    Vijay.

    From a unix load perspective this is what we have done :
    Create a control file (say load_data.ctl) something like
    LOAD DATA
    append
    Into table file_name_age
    File_Name constant '<FILENAME>',
    Name CHAR TERMINATED BY '|'
    Age INTEGER EXTERNAL TERMINATED BY '|' )
    in a unix loop do the following
    for i in `ls $LOADDIR` ; do
    #Replace <FILENAME> with actual filename and create a temp ctl file
    sed s/\<FILENAME\>/${1}/g < ${CTLDIR}/load_data.ctl > ${TMPDIR}/load_data_${1}.ctl
    #load using temp file
    sqlldr / CONTROL=${TMPDIR}/load_data_${1}.ctl
    DATA=$i
    #remove temp
    rm ${TMPDIR}/load_data_${1}.ctl
    done
    Where
    ${TMPDIR}=your temp directory
    ${CTLDIR}=where your main directory for ctl files
    $LOADDIR=Your data directory

  • Calling SQL Loader with Dynamic file names

    HI all
    I woul like to know if I can call sql loader as below
    $ sqlldr userid=uname/pwd control=new.ctl, data=$1
    I have to schedule my loader 3 times a day and each time my file names are different(AAA_BBB_timestamp)
    Thanks

    I have found a solution myself and if any one is interested its like this
    for file in `ls -1 /opt/user/from/`
    do
    sqlldr userid=user/pwd@connect_string control=control_file.ctl data="/opt/user/from//$file"
    done
    Ramu

  • Insert data file name into table from sql loader

    Hi All,
    I have a requirement to insert the data file name dynamically into table using sql loader.
    Example:
    sqlldr userid=username/passwword@host_string control=test_ctl.ctl data=test_data.dat
    test_ctl.ctl
    LOAD DATA
    FILED TERMINATED BY ','
    INTO TABLE test
    (empid number,
    ename varchar2(20),
    file_name varchar2(20) ---------- This should be the data file name which can be dynamic (coming from parameter)
    test_data.dat
    1,test
    2,hello
    3,world
    4,end
    Please help..
    Thanks in advance.
    Regards
    Anuj

    you'll probably have to write your control file on the fly, using a .bat or .sh file
    rem ===== file : test.bat ========
    rem
    rem ============== in pseudo speak =============
    rem
    rem
    echo LOAD DATA > test.ctl
    echo FILED TERMINATED BY ',' >> test.ctl
    echo INTO TABLE test >> test.ctl
    echo (empid number, >> test.ctl
    echo ename varchar2(20), >> test.ctl
    echo file_name constant %1% >> test.ctl
    echo ) >> test.ctl
    rem
    rem
    rem
    sqlldr userid=username/passwword@host_string control=test.ctl data=test_data.dat
    rem =============== end of file test.bat =======================
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_field_list.htm#i1008664

  • Possibility of capturing data file name in SQL * Loader

    Hi,
    I have a requirement to capture the data file name in the staging table, is there a way that i can capture it in SQL * Loader or any other way of doing it.
    Need experts suggestion please.
    Thanks,
    Genoo

    Hi Genoo.
    how do we capture the file name and stores in the temporary table
    You may use the above command mentioned in my previous post (if Linux) to populate the Test.csv file with the available file name in the directory, i.e:
    ls /some/path/*.dat | xargs -n1 basename  > /home/oracle/Test.csv
    1. Ensure to first load the Test.csv file as for eg:
    1,aaa
    2,bbb
    3,ccc
    2. Create a control file to load these records into temporary tables,for eg:
    load data
    infile '/home/oracle/Test.csv'
    into table file_name_upload
    fields terminated by ","
    ( id, file_name )
    3. Create the respective table in the database:
    create table file_name_upload
      id number,
      file_name varchar2(20)
    4. Load the data into temporary table
    sqlldr test/test control=/home/oracle/sqlldr_test.ctl
    Please refer notes:
    SQL*Loader - How To Load A Date Column With Fractions Of Second (Doc ID 1276259.1)
    Script To Generate SQL*Loader Control File (Doc ID 1019523.6)
    SQL*Loader performance tips (Doc ID 28631.1)
    How To use the Sequence Function of SQL*Loader (Doc ID 1058895.6)
    How to Get Data from Existing Table to Flat File Usable by SQL*Loader (Doc ID 123852.1)
    Also see link:
    10 Oracle SQLLDR Command Examples (Oracle SQL*Loader Tutorial)
    Thanks &
    Best regards,

Maybe you are looking for

  • IDOC status is changed to '03' in the weekends.

    Hi, The IDOC'S which remains in 30 status for the whole week is being picked by some autosys job and changed to '03' status.I want to  know the program which changes this IDOC.I have checked the change time of the idoc and checked with the jobs which

  • Xperia Z - Error Ocurred During Tethering

    I can't get tethering working, when I turn it on i get a message 'an error occurred during tethering' i can still connect my laptop to the phone's wifi hotspot but only get local access..I am on Ornage UKYes they support tetheringYes mobile data is s

  • Preview screen doesn't work

    It seems that my preview window is not working. It stays white. If I try to import a picture from iPhoto, it shows up in my video as just white--no photo. The same thing happens for themes. Transitions and Video FX will work but there is no preview--

  • Illustrator CC won't scale with "transform again"

    Coming from CS6, this is a feature I used all the time. However when I scale an object in CC and use transform again (Ctrl + D) to repeat the transformation on another object, it ignores the scaling and just repeats the most recent translation ie. it

  • Iphoto duplicates in images and documents

    Is it normal for images to be stored in all images and all documents, I would like to reduce the amount I have , but first want to be sure I do not delete the originals. Surely I am using double the space?