External table with the preprocessor file to display the list of files

Hello

in my db 11.2.0.2 I would create an external table with script preprocessor to show me the list of files in a directory.

Preprocessor banally:

#! / bin/bash

CD/MyDir

/ bin/ls-l *.txt 2 >/dev/null

The problem is the file name that contains white space (style windows in a Linux env), for ex:

-rw - r - r - 1 oracle oinstall 920 9 Jun 17:37 File1.txt

-rw - r - r - 1 oracle oinstall 72316 Jun 10 10:37 file GC output1.txt

-rw - r - r - 1 oracle oinstall 72316 Jun 10 10:40 GC file output2.txt

So I can't use FIELDS DELIMITED BY "". ""

FIXED size? No, because the file size change the length of the lines.

I tried to use awk in my preprocessos script, but I have the same problem:


/ bin/ls-l *.txt 2 >/dev/null | / bin/awk ' {printf "%s %.2d %s %s\n", $6, $ 7, $ 8, $9} '.


Any ideas?

Hello

I used java to retrieve information about the files.

Tags: Database

Similar Questions

  • External table with the empty file

    Hello

    My version of db: Oracle 11 g

    I have a csv file that is empty.

    I created an external table the empty csv file.

    When I run:

    Select count (*) in the externaltblname;

    It returns 1.

    It should return 0 to the right.

    In the definition, I specified "SKIP 1.

    But he always returns 1.

    When I use this external table to load into a table target. It loads a single row with null values.

    How to solve this problem. Please advice.

    What works for me is the following (t_ext points to a blank csv):

    SQL > select count (field) in the t_ext;

    COUNT (FIELD)

    ------------

    1

    1 selected line.

    SQL > select ascii (field) in the t_ext;

    ASCII (FIELD)

    ------------

    13

    1 selected line.

    SQL > select count (replace (field, chr (13))) of t_ext;

    COUNT (REPLACE (FIELD, CHR (13)))

    -----------------------------

    0

    1 selected line.

  • External table with the field tab delimiter

    With the help of Oracle 11 g Release 2

    Here is my table create statement external:

    CREATE TABLE global.ext_a_attrib_cmt
    (   tag      VARCHAR2(255)
      , from$    VARCHAR2(255)
      , to$      VARCHAR2(255)
    )
       ORGANIZATION EXTERNAL
    (  TYPE ORACLE_LOADER
       DEFAULT DIRECTORY EXT_DATA_DIR
          ACCESS PARAMETERS
            (  RECORDS DELIMITED BY NEWLINE 
               SKIP 1
               BADFILE EXT_BAD_DIR:'a_attrib_cmt.bad'
               LOGFILE EXT_LOG_DIR:'a_attrib_cmt.log'
           --    FIELDS TERMINATED BY 0X'09' -- TAB delimited  
               FIELDS TERMINATED BY '\t'
               OPTIONALLY ENCLOSED BY "'"
               MISSING FIELD VALUES ARE NULL
               REJECT ROWS WITH ALL NULL FIELDS
            )
          LOCATION ('a_attrib_cmt.txt')
    )
       REJECT LIMIT UNLIMITED
       NOMONITORING
    /
    

    Here is the text file, a_attrib_cmt.txt:

    tagOfTO
    FrontSpringType_idCoilw/FRONT COIL SPRINGS
    FrontSpringType_idSheetthe FRONT/w suspension SPRINGS
    Aspiration_idNaturally aspiratedw/o TURBO
    Aspiration_idTurbochargedw/TURBO
    Aspiration_idSuperchargedw/COMPRESSOR
    SteeringType_idGridw/RACK and PINION STEERING
    SteeringType_idGearw/GEAR STEERING
    FuelDeliveryType_idCARBw/o FUEL INJ
    FuelDeliveryType_idFIw/FUEL INJ
    BedLength_id?" BED
    BodyNumDoors_id? DR
    BrakeSystem_idw / ? BRAKES
    FrontBrakeType_idw/FRONT? BRAKES

    PUBLIC has privileges to write to the directory EXT_DATA_DIR.

    Here is the error I get:

    Globall@ORA1 > select count (*) in the ext_a_attrib_cmt;

    Select count (*) in ext_a_attrib_cmt

    *

    ERROR on line 1:

    ORA-29913: error in executing ODCIEXTTABLEOPEN legend

    ORA-29400: data cartridge error

    KUP-00554: error occurred when parsing the access settings

    KUP-01005: syntax error: found 'minussign': expected an a: "badfile, bigEndian, characterset, column, data, delimited, discardfile,

    disable_directory_link_check, fields, fixed, charge, logfile, language, nodiscardfile, nobadfile, nologfile, date_cache, preprocessor, TailleLue, String, jump,

    territory, variable.

    KUP-01007: line 5, column 8

    Just get rid of the comment line. You cannot cave comments to create external table statement. SY.

  • can bind us a single external table with multiple files in OWB 11 g?

    Hello

    I wanted to ask if it is possible to link an external table with several source files in same or different places? Or an external table must be bound to a single source file and one place.

    Thanks in advance,
    Ann.

    Published by: Ann on October 8, 2010 09:38

    Hello Ann,.

    Can you please help me by telling me the steps to achieve this.

    Right-click on the external table in the project tree, from the menu choose Configure.
    then open right clock the node data files dialog Configuration properties and choose from the menu - Create
    you will get a new record for the file - name of file data property

    Also the link of the OWB user guide
    http://download.Oracle.com/docs/CD/B28359_01/OWB.111/b31278/ref_def_flatfiles.htm#i1126304

    Kind regards
    Oleg

  • external table with preprocessor option

    Hello!

    Can someone help me, I created an external table with option of preprocessor, but error encountered when querying the external table below.

    I use Version 2.1.0.63 oracle sql developer.
    I run the query on my client.
    My files are under the oracle database server (version is 11.1.0.6).
    Linux operating system.

    Error report:
    SQL error: ORA-29913: error in executing ODCIEXTTABLEOPEN legend
    ORA-29400: data cartridge error
    KUP-00554: error occurred when parsing the access settings
    KUP-01005: syntax error: found 'distinctive sign': expected an a: "badfile, bigEndian, characterset, column, data, delimited, discardfile, disable_directory_link_check, fields, set, load, logfile, language, nodiscardfile, nobadfile, nologfile, date_cache, transformation, TailleLue, chain, skip, territory, variable.
    KUP-01008: the bad ID was: PREPROCESSOR
    KUP-01007: in column 10 on line 2
    29913 00000 - "error in the execution of %s legend".
    * Cause: The execution of the specified legend caused an error.
    * Action: Examine the error messages take appropriate measures.

    Upgrades the database to 11.1.0.7 the only way to solve this problem?


    Thank you!
    Dhekz

    You need version 11.2 database...

    http://download.Oracle.com/docs/CD/E11882_01/server.112/e10881/Chapter1.htm#NEWFTCH1
    http://download.Oracle.com/docs/CD/E11882_01/server.112/e10595/tables013.htm#ADMIN12898

  • External table - load a log file with more than 4000 bytes per column

    Hello
    I'm trying to import a log file into a database table that has a single column: txt_line
    In this column, I'm trying to fill out a log by record type entry. Each log entry is normally more than 4000 bytes in the outer table, it should be a clob.
    Below is a table of external work that works, but cut all entries after 4000 bytes. How is it is possible to directly load the data into a clob column? All I've found are descriptions where I have a clob-file by file.
    Any help is appreciated
    Thank you



    Source file
    .. more than 4000 bytes...]] .. .more Quen 4000 bytes...]] .. more than 4000 bytes.

    ]] ist the record delimiter

    External table:
    create the table TST_TABLE
    (
    txt_line varchar2 (4000)
    )
    external organization
    (type
    ORACLE_LOADER
    the default directory tmp_ext_tables
    (settings) access
    records delimited by a "]]"
    fields (txt_line char (4000))
    )
    location ("test5.log")
    )
    reject the limit 0
    ;

    user12068228 wrote:

    I'm trying to import a log file into a database table that has a single column: txt_line
    In this column, I'm trying to fill out a log by record type entry. Each log entry is normally more than 4000 bytes in the outer table, it should be a clob.
    Below is a table of external work that works, but cut all entries after 4000 bytes. How is it is possible to directly load the data into a clob column? All I've found are descriptions where I have a clob-file by file.
    Any help is appreciated
    . . . E t c...

    And what did you expect if you define the field source and target column as 4000 characters?

    Try this:

    CREATE TABLE tst_table
     (
       txt_line CLOB
     )
     ORGANIZATION EXTERNAL
     (TYPE oracle_loader
        DEFAULT DIRECTORY tmp_ext_tables
        ACCESS PARAMETERS (
           RECORDS DELIMITED BY ']]'
           FIELDS (txt_line CHAR(32000))
        )
      LOCATION ('test5.log')
     )
    REJECT LIMIT 0
    ;
    

    8 2

  • CSS Display table with the bottom border only

    Hi all
    I'm very bad in CSS, I seriously need a style.

    I want the table with the bottom border only

    I tried like
    < table frame = "below" cellpadding = "2px" cellspacing = "0" style = "overflow: scroll;" empty-cells: show; border: 1px solid #285577; "width ="350px"> ';

    but frame = 'below' does not work with IE - 7

    Please could give me a solution.

    Thanks in advance
    Good bye
    Sonny_starck

    Sonny_starck,

    I don't know what kind of table you need exactly but

    < table style = "" border-bottom: 1px solid #285577; ">"

    should do the job.

    Denes Kubicek
    -------------------------------------------------------------------
    http://deneskubicek.blogspot.com/
    http://www.Opal-consulting.de/training
    http://Apex.Oracle.com/pls/OTN/f?p=31517:1
    -------------------------------------------------------------------

  • Creating external Tables using the EXECUTE IMMEDIATE in PL/SQL

    Hi guys,.

    I am trying to create an external Table using the EXECUTE IMMEDIATE in a procedure and I managed to compile and no errors were generated. But when I try to run it from sql using the exec command I get the following error:

    ------------------------------------------------------------------------
    ERROR on line 5:
    ORA-00911: invalid character
    ORA-06512: at "GEO. TEST_DDL', line 4
    ORA-06512: at line 5

    -------------------------------------------------------------------------

    I tried to check the whole statement to create the external table, but I can't find where is the error. Surprisingly, if I simply run the command table create external on sqlplus it works, but not a procedure.

    If anyone can help with ideas or experience?

    Geoffrey Kossami

    The error means that there is an identifier somewhere that starts with a nonalphanumeric. This is a typical mistake of editing. A procedure compiles correctly is not of course because the underlying dynamic sql running is OK. Which of course only be resolved when you try to run it.

    There is certainly a problem with the text you provide to be run as a piece of dynamic sql code. You should try to watch it with dbms_output and run this code in sqlplus. But your problem is with the code you run as dynamic PL/SQL, it is not itself compilable.

    Jack

  • kindly tell how to use the unique value of a table with the index 0

    kindly tell how to use the unique value of a table with the index 0

    Hi
     
    Yep, use Index Array as Gerd says. Also, using the context help ( + h) and looking through the array palette will help you get an understanding of what each VI does.
     
    This is fundamental LabVIEW stuff, perhaps you'd be better spending some time going through the basics.
     
    -CC
  • LOV cascading if I don't have only one table with the customer name and the name of the product in the ADF.

    Hi Please help me how to use cascade, if I don't have only one table with the customer name and the name of the product in the ADF... I use Jdeveloper 11.1.

    For the client, I used customer VO with client list to fill but to populate the product that I use bind variable PrODUCT_NAME select distinct from TABLE where client_name =: bindCustomer

    so first of all, I need to set the variable of liaison on behalf of the selected customer.

    Can you please tell me how to set this variable binding in this case.

    After you set the LOV to your product attribute, correspondting VO in the LOV will appear under view accessors.

    Change the accessor of the view, you will see the variable binding. Set its value to the customer field of the parent object.

    Visit this link: https://www.youtube.com/watch?v=nXwL2_RP7AQ

    Kind regards

    Elias.

  • How to export data to excel that has 2 tables with the same number of columns and the column names?

    Hi everyone, yet once landed upward with a problem.

    After trying many things to myself, finally decided to post here...

    I created a form in form builder 6i in which clicking on a button, the data gets exported to the excel sheet.

    It works very well with a single table. The problem now is that I cannot do the same with 2 tables.

    Because the tables have the same number of columns and the columns names.

    Here are the 2 tables with column names:

    Table-1 (MONTHLY_PART_1) Table-2 (MONTHLY_PART_2)
    SL_NOSL_NO
    MODELMODEL
    END_DATEEND_DATE
    U-1U-1
    U-2U-2
    U-4U-4
    ..................
    ..................
    U-20U-20
    U-25U-25

    Given that the tables have the same column names, I get the following error :

    402 error at line 103, column 4

    required aliases in the SELECT list of the slider to avoid duplicate column names.

    So how to export data to excel that has 2 tables with the same number of columns and the column names?

    Should I paste the code? Should I publish this query in 'SQL and PL/SQL ' Forum?

    Help me with this please.

    Thank you.

    Wait a second... is this a kind of House of partitioning? Shouldn't it is a union of two tables instead a join?

    see you soon

  • Fill a table with the results of the refresh groups

    Hello world

    I need a little help.

    I'm working on an Oracle 10.2.0.4 on windows.

    I have a table I created like this:
    Table name: DIM_REPLICA

    COD_SEZ VCHAR2 (2)
    NOME_SEZ VCHAR2 (20)
    FLAG TANK (1)
    DATE OF D_REPLICA

    This DB I have 210 discount groups running every night. I need fill this table with the results of the refresh groups.

    So when the refresh for example called ROME group runs I need to write on the table the name ROME in the field "NOME_SEZ", a Y or N if the refresh Group has worked in the field of the INDICATOR and LAST_DATE refresh force ran into the field of the D_REPLICA. The COD_SEZ field is a code that I get other things. It is not necessary for the moment. I can add it myself on my own.

    Can someone help me please?

    I was looking on the tables SYS DBA_JOBS and DBA_REFRESH these data, but I don't know what to take and how to fill the table. Trigger? Procedure? Any help will be great!

    Thank you all in advance!

    This forum is for SQL * PLus, questions and your question is about general issues Oracle. You will get a better response by posting your question in another forum - probably the General database instance.

    Please close this thread and start over in another forum.

  • update to column values (false) in a copy of the same table with the correct values

    Database is 10gr 2 - had a situation last night where someone changed inadvertently values of column on a couple of hundred thousand records with an incorrect value first thing in the morning and never let me know later in the day. My undo retention was not large enough to create a copy of the table as it was 7 hours comes back with a "insert in table_2 select * from table_1 to timestamp...» "query, so I restored the backup previous nights to another machine and it picked up at 07:00 (just before the hour, he made the change), created a dblink since the production database and created a copy of the table of the restored database.

    My first thought was to simply update the table of production with the correct values of the correct copy, using something like this:


    Update mnt.workorders
    Set approvalstat = (select b.approvalstat
    mnt.workorders a, mnt.workorders_copy b
    where a.workordersoi = b.workordersoi)
    where exists (select *)
    mnt.workorders a, mnt.workorders_copy b
    where a.workordersoi = b.workordersoi)

    It wasn't the exact syntax, but you get the idea, I wanted to put the incorrect values in x columns in the tables of production with the correct values of the copy of the table of the restored backup. Anyway, it was (or seem to) works, but I look at the process through OEM it was estimated 100 + hours with full table scans, so I killed him. I found myself just inserting (copy) the lines added to the production since the table copy by doing a select statement of the production table where < col_with_datestamp > is > = 07:00, truncate the table of production, then re insert the rows from now to correct the copy.

    Do a post-mortem today, I replay the scenario on the copy that I restored, trying to figure out a cleaner, a quicker way to do it, if the need arise again. I went and randomly changed some values in a column number (called "comappstat") in a copy of the table of production, and then thought that I would try the following resets the values of the correct table:

    Update (select a.comappstat, b.comappstat
    mnt.workorders a, mnt.workorders_copy b
    where a.workordersoi = b.workordersoi - this is a PK column
    and a.comappstat! = b.comappstat)
    Set b.comappstat = a.comappstat

    Although I thought that the syntax is correct, I get an "ORA-00904: 'A'. '. ' COMAPPSTAT': invalid identifier ' to run this, I was trying to guess where the syntax was wrong here, then thought that perhaps having the subquery returns a single line would be cleaner and faster anyway, so I gave up on that and instead tried this:

    Update mnt.workorders_copy
    Set comappstat = (select distinct)
    a.comappstat
    mnt.workorders a, mnt.workorders_copy b
    where a.workordersoi = b.workordersoi
    and a.comappstat! = b.comappstat)
    where a.comappstat! = b.comappstat
    and a.workordersoi = b.workordersoi

    The subquery executed on its own returns a single value 9, which is the correct value of the column in the table of the prod, and I want to replace the incorrect a '12' (I've updated the copy to change the value of the column comappstat to 12 everywhere where it was 9) However when I run the query again I get this error :

    ERROR on line 8:
    ORA-00904: "B". "" WORKORDERSOI ": invalid identifier

    First of all, I don't see why the update statement does not work (it's probably obvious, but I'm not)

    Secondly, it is the best approach for updating a column (or columns) that are incorrect, with the columns in the same table which are correct, or is there a better way?

    I would sooner update the table rather than delete or truncate then re insert, as it was a trigger for insert/update I had to disable it on the notice re and truncate the table unusable a demand so I was re insert.

    Thank you

    Hello

    First of all, after post 79, you need to know how to format your code.

    Your last request reads as follows:

    UPDATE
      mnt.workorders_copy
    SET
      comappstat =
      (
        SELECT DISTINCT
          a.comappstat
        FROM
          mnt.workorders a
        , mnt.workorders_copy b
        WHERE
          a.workordersoi    = b.workordersoi
          AND a.comappstat != b.comappstat
      )
    WHERE
      a.comappstat      != b.comappstat
      AND a.workordersoi = b.workordersoi
    

    This will not work for several reasons:
    The sub query allows you to define a and b and outside the breakets you can't refer to a or b.
    There is no link between the mnt.workorders_copy and the the update and the request of void.

    If you do this you should have something like this:

    UPDATE
      mnt.workorders     A      -- THIS IS THE TABLE YOU WANT TO UPDATE
    SET
      A.comappstat =
      (
        SELECT
          B.comappstat
        FROM
          mnt.workorders_copy B   -- THIS IS THE TABLE WITH THE CORRECT (OLD) VALUES
        WHERE
          a.workordersoi    = b.workordersoi      -- THIS MUST BE THE KEY
          AND a.comappstat != b.comappstat
      )
    WHERE
      EXISTS
      (
        SELECT
          B.comappstat
        FROM
          mnt.workorders_copy B
        WHERE
          a.workordersoi    = b.workordersoi      -- THIS MUST BE THE KEY
          AND a.comappstat != b.comappstat
      )
    

    Speed is not so good that you run the query to sub for each row in mnt.workorders
    Note it is condition in where. You need other wise, you will update the unchanged to null values.

    I wouold do it like this:

    UPDATE
      (
        SELECT
          A.workordersoi
          ,A.comappstat
          ,B.comappstat           comappstat_OLD
    
        FROM
          mnt.workorders        A      -- THIS IS THE TABLE YOU WANT TO UPDATE
          ,mnt.workorders_copy  B      -- THIS IS THE TABLE WITH THE CORRECT (OLD) VALUES
    
        WHERE
          a.workordersoi    = b.workordersoi      -- THIS MUST BE THE KEY
          AND a.comappstat != b.comappstat
      ) C
    
    SET
      C.comappstat = comappstat_OLD
    ;
    

    This way you can test the subquery first and know exectly what will be updated.
    This was not a sub query that is executed for each line preformance should be better.

    Kind regards

    Peter

  • How the values to insert into the table with the command insertion

    Dear all
    can someone tell me how the values to insert into the table with the command insert, I want to say I always use command insert behind my forms on what shutter release button press the button of my save, but today I had a form of 6i, where controls (textbox, combo, etc.) are delineated with directly the table with I guess than the Properties Windows , I created 3 columns in tand 3 text on forms fields, now kindly tell me how to do this fields to fill and do not insert command, I mean directly defined with table column



    Please help me its urgent

    Hello

    If the block is based on your database table, just committed the shape, then changes will be applied to the database.

    François

  • Drop a large number of tables with the same prefix

    Hello

    can you help me to make a script to move all the tables with the same prefix = TEST_LINK_?

    Thank you very much.
    Crystal

    Hi crystal,

    Here's something to start. It does not all FK constraints on those tables and assumes that the executor is the owner.

    declare
      pstmt  constant varchar2(255) := 'drop table :t purge';
      vstmt varchar2(255);
    begin
    for rec in (select table_name
                  from user_tables
                 where table_name like 'TEST_LINK\_%' escape '\')
       loop
          vstmt := replace(pstmt, ':t', rec.table_name);
          dbms_output.put_line(vstmt || ';');
    --      execute immediate vstmt;
       end loop;
    end;
    /
    

    Concerning
    Peter

Maybe you are looking for

  • HowTo Import Favorites .json file

    I saved my favorites from a facility earlier Firefox, saved to a .json file, but how now to import the bookmarks into my new installation? Options talk about profiles, backup/restore, but I haven't saved any profile, only bookmarks.

  • Raising an event from multiple tabs?

    Hi guys, first post so please be gentle! I'm doing something that I believe should be simple, but I can't find the answer anywhere, basically, I want to raise an event to an event of the housing of the different tabs in a tab-based USER interface. Fo

  • SCAM TO RENEW THE WINDOWS XP?

    I received a call from www.curingyourpc.com, saying that I needed to update my WINDOWS security, and that I had to immediately before the new year.  I didn't understand what they were trying to tell me, but I think they said I'm unprotected now and m

  • Uninstall java and kenza newer for windows family xp 2002

    I WANT TO UNINSTALL JAVA AND RETRIEVES THE VERSION MORE RECENT RUNNING ON WINDOWS XP HOME EDITOIN. AFRAID TO REMOVE THE OTHERS BEFORE I KNOW WHAT TO DO... Help

  • SDO ORA-00904 identifier valid after patch 20544696 and 20225988 (CPU Apr 15)

    The seller of our web mapping system uses a syntax that contains the identifier SDO_GEOM. SDO_GEOMETRY and similar. An example simplified using the point constructor ODD as in...Select sdo_geom.sdo_geometry (2001, 81989, sdo_geom.sdo_point_type (5315