Text file to oracle ???

Hi,
i have one text file which contains
two columns code and datavalue.
based on code for eg if 01
then data should insert into EDI01 tables and datavalue respectively.
and so on may be upto code 99
Is there any sql statement with which
i can do in very short instead 100 if and else!
i mean like this
v_code is 00 to 99
v_datavalues corresponding to code from the text file
insert into EDI||v_code values(v_code,v_datavalue)

You can, so, send the client machine file to the Application Server with the Webutil webutil_file_transfer package, then load each record with the TEXT_IO package.
here is a function that allow to take tokens from a delimited string, to get every single element from one line:
CREATE OR REPLACE FUNCTION Split ( PC$Chaine IN VARCHAR2, PN$Pos IN PLS_INTEGER, PC$Sep IN VARCHAR2 DEFAULT ',' )
RETURN VARCHAR2
IS
LC$Chaine VARCHAR2(32767) := PC$Sep || PC$Chaine ;
LI$I  PLS_INTEGER ;
LI$I2 PLS_INTEGER ;
BEGIN
LI$I := INSTR( LC$Chaine, PC$Sep, 1, PN$Pos ) ;
IF LI$I > 0 THEN
    LI$I2 := INSTR( LC$Chaine, PC$Sep, 1, PN$Pos + 1) ;
     IF LI$I2 = 0 THEN LI$I2 := LENGTH( LC$Chaine ) + 1 ; END IF ;
     RETURN( SUBSTR( LC$Chaine, LI$I+1, LI$I2 - LI$I-1 ) ) ;
ELSE
    RETURN NULL ;
END IF ;
END;you can get the first and second element:
LC$Line := TEXT_IO.Get_Line( file ) ;
id    := Split( LC$Line, 1 );
label := Split( LC$Line, 2 );
Insert Into ...
Values (id, label);
...Francois

Similar Messages

  • Unable to find file error while loading data from text file to Oracle

    Hi,
    I am having a interface where i am loading a data of Text file to Oracle.
    But when i am trying to do this i am getting following error.
    ODI-1227: Task SrcSet0 (Loading) fails on the source FILE connection SAPMM.
    Caused By: java.sql.SQLException: File not found: d:/mdb/#General.get_filename
         at com.sunopsis.jdbc.driver.file.FileResultSet.<init>(FileResultSet.java:160)
         at com.sunopsis.jdbc.driver.file.impl.commands.CommandSelect.execute(CommandSelect.java:57)
         at com.sunopsis.jdbc.driver.file.CommandExecutor.executeCommand(CommandExecutor.java:33)
    SAPMM is connection name.
    I am using get_filename to get the filename and it is fetching correct value as the this variable refreshes in previous step of this interface.
    KM used for loading is File to SQL
    What would be cause of this error?
    Thanks,
    Mahesh

    Hi,
    Did a testing and following are the result
    I have
    A> created package having steps like
    1. Declaration of variable v_filename.
    2. Refreshing variable v_filename.
    3. Execution of Interface which gets the file name from v_filename and load into target table
    Package executes successfully.
    B> created package having steps like
    1. Declaration of variable v_filename.
    2. Refreshing variable v_filename.
    3. Scenario of Interface which gets the file name from v_filename and load into target table
    Package executes with erre as it is not able to find the file
    C> created package having steps like
    1. Declaration of variable v_filename.
    2. Refreshing variable v_filename.
    3. Execution of Interface which gets the file name from v_filename and load into target table
    4. Now create a scenario of the package , use the generated scenario in another package say main_package
    Execution of main_package is successful.
    Thanks,
    Sutirtha

  • How to load date and time from text file to oracle table through sqlloader

    hi friends
    i need you to show me what i miss to load date and time from text file to oracle table through sqlloader
    this is my data in this path (c:\external\my_data.txt)
    7369,SMITH,17-NOV-81,09:14:04,CLERK,20
    7499,ALLEN,01-MAY-81,17:06:08,SALESMAN,30
    7521,WARD,09-JUN-81,17:06:30,SALESMAN,30
    7566,JONES,02-APR-81,09:24:10,MANAGER,20
    7654,MARTIN,28-SEP-81,17:24:10,SALESMAN,30my table in database emp2
    create table emp2 (empno number,
                      ename varchar2(20),
                      hiredate date,
                      etime date,
                      ejob varchar2(20),
                      deptno number);the control file code in this path (c:\external\ctrl.ctl)
    load data
    infile 'C:\external\my_data.txt'
    into table emp2
    fields terminated by ','
    (empno, ename, hiredate, etime, ejob, deptno)this is the error :
    C:\>sqlldr scott/tiger control=C:\external\ctrl.ctl
    SQL*Loader: Release 10.2.0.1.0 - Production on Mon May 31 09:45:10 2010
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Commit point reached - logical record count 5
    C:\>any help i greatly appreciated
    thanks
    Edited by: user10947262 on May 31, 2010 9:47 AM

    load data
    infile 'C:\external\my_data.txt'
    into table emp2
    fields terminated by ','
    (empno, ename, hiredate, etime, ejob, deptno)Try
    load data
    infile 'C:\external\my_data.txt'
    into table emp2
    fields terminated by ','
    (empno, ename, hiredate, etime "to_date(:etime,'hh24:mi:ss')", ejob, deptno)
    this is the error :
    C:\>sqlldr scott/tiger control=C:\external\ctrl.ctl
    SQL*Loader: Release 10.2.0.1.0 - Production on Mon May 31 09:45:10 2010
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Commit point reached - logical record count 5
    C:\>
    That's not an error, you can see errors within log and bad files.

  • Passing contents of text file in oracle cursor

    Hi,
    I need to pass the content of text file in cursor and pass it on to calling codes. then calling codes will generate another text at their end. Can some help how can I pass contents of text file in oracle cursor? Thanks

    i need to do it without tables for some reasons.

  • Reading Text Files using Oracle PL/SQL and UTL_FILE

    Hi, experts. I tried to read a text file into oracle. Here is what i did:
    1. Create a text file in the directory: C:\temp\New Text Document.txt
    2. Run the following SQL in PL/SQL:
    CREATE or replace DIRECTORY sampledata AS 'C:\temp\';
    grant read, write on directory sampledata to public;
    3. When I run the following code, it caused an error: ora-29280: invalid directory path. I have alread checked the directory path, it is correct. Would someone know what wrong is my code?
    declare
    f utl_file.file_type;
    s varchar2(3000);
    begin
    f := utl_file.fopen('sampledata','New Text Document.txt','R');
    utl_file.get_line(f,s);
    utl_file.fclose(f);
    dbms_output.put_line(s);
    end;
    Thank you

    Try with a filename without spaces:No problem with spaces
    SQL> declare
      2  f utl_file.file_type;
      3  s varchar2(3000);
      4  begin
      5  f := utl_file.fopen('SAMPLEDATA','New Text Document.txt','R');
      6  utl_file.get_line(f,s);
      7  utl_file.fclose(f);
      8  dbms_output.put_line(s);
      9  end;
    10  /
    line1
    PL/SQL procedure successfully completed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Import Text File to Oracle Table

    Hi Guys,
    Just needed some advice on how to approach this project. I need to set up an automated schedule to import a text file into an oracle table. There will be a folder set up, where a file is put every day for me. The file will have a name such as Name_Extract_<Date>. It will always start with the words Name_extract_ and the date appended to it. I need to import this text file into oracle, then perhaps copy the file to another folder when import is finished.
    What will be the best method to use to accomplish this?? SQl Loader, UTL_FILE package? Any help will be appreciated.

    Not much details but depending on versions etc of your Oracle database I'd look into external tables. Perhaps even leverage DBFS (only available in 11.2).
    http://download.oracle.com/docs/cd/E11882_01/server.112/e10713/tablecls.htm#CNCPT1141
    -Andy

  • Upload text file to oracle table with checking and aggregation

    Hi Friends,
    I am new to ODI.  I have encountered a problem which is specific to ODI 11G (11.1.1.6.3) to upload text file to oracle table with checking and aggregation.  Would you please teach me how to implement the following requirement in ODI 11G?
    Input text file a:
    staffCode, staffCat, status, data
    input text file b:
    staffCodeStart, staffCodeEnd, staffCat
    temp output oracle table c:
    staffCat, data
    output oracle table d:
    staffCat, data
    order:
    a.staffCode, a.staffCat, a.status
    filter:
    a.status = ‘active’
    join:
    a left outerjoin b on a.staffCode between b.staffCodeStart and b.staffCodeEnd
    insert temp table c:
    c.staffCat = if b.staffCat is not null then b.staffCat else a.staffCat
    c.data = a.data
    insert table d:
    if c.staffCat between 99 and 1000 then d.staffCat = c.staffCat, d.data = sum(c.data)
    else d.staffCat = c.staffCat, d.data = LAST(c.data)
    Any help on fixing this is highly appreciated. Thanks!!
    Thanks,
    Chris

    Dear Santy,
    Many thanks for your prompt reply.  May I have more information about the LAST or SUM step?
    I was successful to create and run the following interfaces p and q
    1. Drag text file a to a newly created interface panel p
    2. Filter text file a : a.status = ‘active’
    3. Lookup text file a to text file b : a.staffCode between b.staffCodeStart and b.staffCodeEnd
    4. Drag oracle temp table c to interface panel p
    5. Set c.staffCat : CASE WHEN b.staffCat IS NULL THEN a.staffCat ELSE b.staffCat END
    6. Set c.data : a.data
    7. Drag oracle temp table c to a newly created interface panel q
    8. Drag oracle table d to interface panel q
    9. Set UK to d.staffCat
    10. Set Distinct Rows to table d
    11. Set d.staffCat = c.staffCat
    12. Set d.data = SUM(c.data)
    However, the interface q should be more than that:
    If c.staffCat is between 99 and 1000, then d.data = the last record c.data; else d.data = sum(c.data)
    Would you please teach me how to do the LAST or SUM steps?  Moreover, can interface p and interface q be combined to one interface and do not use the temp table c?  Millions thanks!
    Regards,
    Chris

  • "how to load a text file to oracle table"

    hi to all
    can anybody help me "how to load a text file to oracle table", this is first time i am doing, plz give me steps.
    Regards
    MKhaleel

    Usage: SQLLOAD keyword=value [,keyword=value,...]
    Valid Keywords:
    userid -- ORACLE username/password
    control -- Control file name
    log -- Log file name
    bad -- Bad file name
    data -- Data file name
    discard -- Discard file name
    discardmax -- Number of discards to allow (Default all)
    skip -- Number of logical records to skip (Default 0)
    load -- Number of logical records to load (Default all)
    errors -- Number of errors to allow (Default 50)
    rows -- Number of rows in conventional path bind array or between direct path data saves (Default: Conventional path 64, Direct path all)
    bindsize -- Size of conventional path bind array in bytes (Default 256000)
    silent -- Suppress messages during run (header, feedback, errors, discards, partitions)
    direct -- use direct path (Default FALSE)
    parfile -- parameter file: name of file that contains parameter specifications
    parallel -- do parallel load (Default FALSE)
    file -- File to allocate extents from
    skip_unusable_indexes -- disallow/allow unusable indexes or index partitions (Default FALSE)
    skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable (Default FALSE)
    commit_discontinued -- commit loaded rows when load is discontinued (Default FALSE)
    readsize -- Size of Read buffer (Default 1048576)
    external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE
    (Default NOT_USED)
    columnarrayrows -- Number of rows for direct path column array (Default 5000)
    streamsize -- Size of direct path stream buffer in bytes (Default 256000)
    multithreading -- use multithreading in direct path
    resumable -- enable or disable resumable for current session (Default FALSE)
    resumable_name -- text string to help identify resumable statement
    resumable_timeout -- wait time (in seconds) for RESUMABLE (Default 7200)
    PLEASE NOTE: Command-line parameters may be specified either by position or by keywords. An example of the former case is 'sqlldr scott/tiger foo'; an example of the latter is 'sqlldr control=foo userid=scott/tiger'. One may specify parameters by position before but not after parameters specified by keywords. For example, 'sqlldr scott/tiger control=foo logfile=log' is allowed, but 'sqlldr scott/tiger control=foo log' is not, even though the position of the parameter 'log' is correct.
    SQLLDR USERID=GROWSTAR/[email protected] CONTROL=D:\PFS2004.CTL LOG=D:\PFS2004.LOG BAD=D:\PFS2004.BAD DATA=D:\PFS2004.CSV
    SQLLDR USERID=GROWSTAR/[email protected] CONTROL=D:\CLAB2004.CTL LOG=D:\CLAB2004.LOG BAD=D:\CLAB2004.BAD DATA=D:\CLAB2004.CSV
    SQLLDR USERID=GROWSTAR/[email protected] CONTROL=D:\GROW\DEACTIVATESTAFF\DEACTIVATESTAFF.CTL LOG=D:\GROW\DEACTIVATESTAFF\DEACTIVATESTAFF.LOG BAD=D:\GROW\DEACTIVATESTAFF\DEACTIVATESTAFF.BAD DATA=D:\GROW\DEACTIVATESTAFF\DEACTIVATESTAFF.CSV

  • Output query result to a text file in ORACLE

    I Need a procedure for generating output query into text file in Oracle.
    for Example,
    A table called Tab1
    the columns are c1,c2,c3,c4,c5.
    I want to store the data in text file in...
    First row as a column name & then, appear the records in second row onwards...
    c1|c2|c3|c4|c5.
    Please kindly provide the solution for this ASAP.

    In case you are using Oracle 9i or higher you should better create a DIRECTORY rather then setting utl_file_dir,e.g.
    SQL> CREATE DIRECTORY log_dir AS '/appl/gl/log';
    SQL> GRANT READ ON DIRECTORY log_dir TO DBA; http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96612/u_file.htm#ARPLS069

  • SQL Loader - Loading Text File into Oracle Table that has carriage returns

    Hi All,
    I have a text file that I need to load into a table in Oracle using SQL Loader. I'm used to loading csv or comma delimited files into Oracle so I'm not sure what the syntax is when it comes to loading a text file that essentially has one value per row and each row is separated by a carriage return. So when you open the text file, the records look like this:
    999999999 <CRLF>
    888888889 <CRLF>
    456777777 <CRLF>
    456555535 <CRLF>
    345688888 <CRLF>
    So each row is separated by a hard return and I need to tell sql loader that the hard return or next row is the next value to insert into the table. Below is an example of a control file I tend to use as a template for loading csv files but I need to modify it to accomodate this new structure.
    OPTIONS (DIRECT=TRUE,ROWS=100000)
    UNRECOVERABLE
    LOAD DATA
    INFILE 'C:\input.txt'
    BADFILE 'C:\input.bad'
    APPEND
    INTO TABLE TEST_TABLE
    FIELDS TERMINATED BY ","
    TRAILING NULLCOLS
    COLUMN_1
    How to I modify the control file above to use hard returns as the field/row delimiter for my text file?
    Thanks

    Hi there,
    Obviously my intention wasn't to post the same message 4 times....I pressed the "Submit Message" button but the submission hung and I pressed it a few times and finally it worked but it created several versions of my post. You need to allow users the ability to delete there own postings...I was looking for this option but didn't have it.
    Sorry

  • How to read\write text file into oracle database.

    Hello,
    I am having text file called getInfo in c:\temp folder. I would like to populate data from text file to data base. How to proceed. Could anybody help me out.
    Thanks,
    Shailu

    Here is a web page with easy to follow instructions regarding external files: http://www.adp-gmbh.ch/ora/misc/ext_table.html.
    Now I understand what all the excitement is over external tables.
    "External tables can read flat files (that follow some rules) as though they were ordinary (although read-only) Oracle tables. Therefore, it is convenient to use external tables to load flat files into the DB." -from the above link.

  • Read Text File In Oracle package

    Hello,
    I am writing a spec to move a desktop app and code as an Oracle packaged program. Can a stored procedure or an oracle package read from a text file stored in pc/server directory?

    Somewhere after the first sentence, it goes on to mention the GET_RAW and PUT_RAW functions.

  • Text File from Oracle table

    Hi I have a table with data and structure as
    "PRCS_DATE"     "PLANT"     "IPC"     "PRODWEEK"     "QUANTITY"
    "20120322"     "MES2"     "75921 "     "20120305"     "000000000"
    "20120322"     "MES2"     "75921 "     "20120306"     "000000000"
    "20120322"     "MES2"     "75921 "     "20120307"     "000000000"
    "20120322"     "MES2"     "79110 "     "20120324"     "000000000"
    "20120322"     "MES2"     "79110 "     "20120326"     "000000000"
    "20120322"     "MES2"     "79110 "     "20120327"     "000000000"
    "20120322"     "MES2"     "79111 "     "20120313"     "000000000"
    "20120322"     "MES2"     "79111 "     "20120314"     "000000000"
    "20120322"     "MES2"     "79111 "     "20120315"     "000000000"
    "20120322"     "MES2"     "79111 "     "20120316"     "000000000"
    "20120322"     "MES2"     "79111 "     "20120317"     "000000000"
    "20120322"     "MES2"     "01667 "     "20120321"     "000000000"
    "20120322"     "MES2"     "01667 "     "20120322"     "000000000"
    "20120322"     "MES2"     "01667 "     "20120323"     "000000000"
    "20120322"     "MES2"     "01667 "     "20120324"     "000000000"
    And i want to create a text file as
    Start     Length     Type     Format     Description of the field
    1     4     C          Process date YYYMMDD
    5     4     C          Plant
    9     10     C          IPC
    19     8     C          Prodweek in YYYYMMDD
    27     9     N     7(2)     Quantity
    36     8               Prodweek in YYYYMMDD
    44     9               Quantity
         8               Prodweek in YYYYMMDD
         9               Quantity
    For Exapmle
    20120322MPL101041 20120217000000000201202180000000002012021900000000020120220000000000201202210000000002012022200000000020120223000000000
    20120322MPL101045 2012021700007010020120218000070100201202190000701002012022000007010020120221000070100201202220000378002012022300003320020120224000051900
    For this file should first put "PRCS_DATE"     "PLANT"     "IPC" and then it puts "PRODWEEK"     "QUANTITY" values having same "PRCS_DATE"     "PLANT"     "IPC" for all records.
    NOw just i am encountering problem in how will i put recodrs of quantity and prodweek having same prcs date,after that again same till i get all records.
    Can anyone help me with this?
    Regards,
    Mahesh

    HI,
    Cam anyone help me on this?

  • Problem with Date - Text File Source and Oracle Target

    Hi All,
    I have a source data (text file) with date column in the format of 'MM/DD/YYYY'. My target is oracle. I am using the LKM FILE TO SQL and IKM SQL Control Append. When i execute this interface, i am getting an error as
    7000 : null : com.sunopsis.jdbc.driver.file.b.i
    com.sunopsis.jdbc.driver.file.b.i
    at com.sunopsis.jdbc.driver.file.b.f.getColumnClassName(f.java)
    at the Load Data step.
    How to load date columns from text file to oracle tables? Please help me in resolving this...
    Thanks in Advance,
    Ram Mohan T

    The worst solution is to define for your text file the date as a string and then to rebuild your date type in Oracle.
    something like
    convert(Substr(myfield,4,2)||Substr(myfield,1,2)||Substr(myfield,7,4) ,'MMDDYYYY')
    this is maybe the worst solution but it should work.
    Regards
    Brice

  • Write to text file (including spaces/next line) using oracle??

    How to write to text file using oracle? And how do I handle spaces/next line? (i was trying to use spaces(ch(32)), however it is just converted into squares in the text file.) thanks!

    989873 wrote:
    How about tabs?It does not matter what character it is. UTL_FILE deals correctly with any text file. Tabb is CHR(9):
    SQL> declare
      2       v_file utl_file.file_type;
      3       v_total_rec number := 0;
      4       v_total_sal number := 0;
      5  begin
      6      v_file := UTL_FILE.FOPEN('TEMP','TEST.TXT','w');
      7      for v_rec in (select * from emp) loop
      8        v_total_rec := v_total_rec + 1;
      9        v_total_sal := v_total_sal + v_rec.sal;
    10        UTL_FILE.PUT_LINE(
    11                          v_file,
    12                          lpad(v_rec.deptno,2) || chr(9) || rpad(v_rec.ename,14) || chr(9) || to_char(v_rec.sal,'99999D99')
    13                         );
    14      end loop;
    15      UTL_FILE.PUT_LINE(v_file,'Total Salary:' || chr(9) || v_total_sal);
    16      UTL_FILE.PUT_LINE(v_file,'Total Records:' || chr(9) || v_total_rec);
    17      UTL_FILE.FCLOSE(v_file);
    18  end;
    19  /
    PL/SQL procedure successfully completed.
    SQL> declare
      2       v_file utl_file.file_type;
      3       v_line varchar2(100);
      4  begin
      5      v_file := UTL_FILE.FOPEN('TEMP','TEST.TXT','r');
      6      loop
      7        UTL_FILE.GET_LINE(v_file,v_line);
      8        DBMS_OUTPUT.PUT_LINE(v_line);
      9      end loop;
    10    exception
    11      when no_data_found
    12        then
    13          UTL_FILE.FCLOSE(v_file);
    14  end;
    15  /
    20      SMITH              800.00
    30      ALLEN             1600.00
    30      WARD              1250.00
    20      JONES             2975.00
    30      MARTIN            1250.00
    30      BLAKE             2850.00
    10      CLARK             2450.00
    20      SCOTT             3000.00
    10      KING              5000.00
    30      TURNER            1500.00
    20      ADAMS             1100.00
    30      JAMES              950.00
    20      FORD              3000.00
    10      MILLER            1300.00
    Total Salary:   29025
    Total Records:  14
    PL/SQL procedure successfully completed.
    SQL>SY.

Maybe you are looking for

  • Problem in WAD (The requested query / does not exist on the current server)

    Dear Guru's When i execute a Web Application in WAD in the selection screen suppose if i give Key product  as 86000 then check and execute i get correct data. Then if i come to  backpage (Selection screen again using backspace) and change Key product

  • TOC issue - (Superscript)

    Hi there. I am having an issue with my Table of Contents.  All my links works except for the items that have a superscript in them.  In the example below, when I create the PDF and hover over the items the three words of (Modes of Operation) are hot

  • Help with DYNEX Model: DX-55L150A11 - 55" 120Hz LCD Television

    Is there a Software Update available for this television??  I have trouble when I switch channels on the Cable box (TWC set top box).  The sound disappears and the only way I can get it back is to cycle through the HDMI ports on the Dynex remote or t

  • Integration Oracle Utilities CC&B w/ non-Oracle bespoke Meter Data Management system

    Hello all, In your opinion, what's the best way to integrate a bespoke (non-Oracle) Meter Data Management system with Oracle CC&B 2.3.1 or 2.4? I came up with a few possible scenarios and would love to hear your opinion: 1. Use CC&B Meter Read upload

  • Modeler error when compiling web service

    I'm using wscompile to build a JAR file in order to connect to a web service. I keep getting the following error: error: modeler error: model error: invalid entity name: "schema" (in namespace: "http://www.w3.org/2001/XMLSchema")Here's my XML for the