Using the external table error

Hi all

This is the first time I use the external table for loading the data.

I did these steps

In the D:\sqlloade folder, I have my text file containing data example.txt

I ran these queries

CREATE OR REPLACE DIRECTORY  ext_tab_data AS 'D:\sqlloader';

Directory created

CREATE TABLE fxops.t_ext (
t number
)
ORGANIZATION EXTERNAL (
  TYPE ORACLE_LOADER
  DEFAULT DIRECTORY ext_tab_data
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    (
     t number
    )
  )
  LOCATION ('sample.txt')
)
PARALLEL 5
REJECT LIMIT UNLIMITED;

create table

When I tried to create a view on that table, he throws an error

CREATE OR REPLACE VIEW fxops.t_view  AS
  SELECT *
  FROM   fxops.t_ext;

SQL Error: ORA-06564: object EXT_TAB_DATA does not exist
06564. 00000 -  "object %s does not exist"
*Cause:    The named object could not be found.  Either it does not exist
           or you do not have permission to access it.
*Action:   Create the object or get permission to access it.

Sign in, and then run this:

Select HOST_NAME from v$ instance;

is this the same hostname that you are connected?

Kind regards

Harry

Tags: Database

Similar Questions

  • mapping using the external table error.

    I'm trying to create a map using an external table.
    I'm testing a simple column to column mapping. As simple as you could possibly get.
    Can I deploy the mapping without errors, but when I try to run the map, I get a
    ORA-06564: EXT_DATA object does not exist

    I created my external to oracle using the ext_data directory. I can see the data without any problem in TOAD or SQLPlus.

    I tried to create a place called ext_data and it helps this creation, but I still get the same error.

    Any thoughts?

    Dan

    Hi Dan

    You must deploy the EXT_DATA connector (to be deployed as a Directory SQL) that is created under the location of Oracle used for your external table module is in.

    See you soon
    David

  • Error importing CSV files with "hidden" characters using the external Table

    Hi people

    Bit of a strange here.

    Well, we are accustomed to the use of the external Table method to load data from CSV files in the database, but a recent event presented us a problem.

    We have received some CSV files that "look like" regular CSV files, but Oracle will not load them.

    When we looked at the CSV using VIM on a UNIX machine, we saw the following characters 'hidden' between each regular character in the file.
    ^@
    If a string that looks like this when opened in Excel/Wordpad etc.
    "TEST","TEXT"
    Looks like this when exmained with VIM
    ^@"^@T^@E^@S^@T^@"^@,^@"^@T^@E^@X^@T^@"
    Has anyone encountered this before?

    Thank you very much

    Simon Gadd
    Oracle 11g 11.2.0.1.0

    Hi Simon,.

    ^ @ represents the ZERO character (0x00).
    So, most likely, you have a file encoded in Unicode.

    You need to specify the character set in the record specification (and if necessary the byte order mark), for example:

    CREATE TABLE ext_table
    (
      col1 VARCHAR2(10),
      col2 VARCHAR2(10)
    )
    ORGANIZATION EXTERNAL
    (
      TYPE ORACLE_LOADER
      DEFAULT DIRECTORY dump_dir
      ACCESS PARAMETERS
      (
       RECORDS DELIMITED BY '
    ' CHARACTERSET 'UTF16'
      FIELDS TERMINATED BY ','
      )
      LOCATION ('dump.csv')
    )
    REJECT LIMIT UNLIMITED;
    

    http://download.Oracle.com/docs/CD/E11882_01/server.112/e16536/et_params.htm#i1009499

  • Timestamp of reading using the external Table

    Hello
    I have a data file that looks like
    2011-08-15 00:00:00.000000 | 23:59:59.999999 2011-08-15

    I am trying to use an external table. But I always get an error trying to read the fractional part (ie the last 6 digits).
    The code is:
    create table ext_table_fdw)
    DW_Open TIMESTAMP
    DW_Close TIMESTAMP
    )
    (external) Organization
    type oracle_loader
    the default directory ftp_in
    (settings) access
    records delimited by newline
    nologfile
    fields ended by ' |'
    missing field values are null
    (
    DW_OPEN Char Date_Format Timestamp mask 'Mon dd yyyy Hh:Mi:Ss:Ff6'
    DW_Close Char Date_Format Timestamp mask 'Mon dd yyyy Hh:Mi:Ss:Ff6'
    )
    )
    location ("fdwextract_copy.txt")
    )
    reject limit unlimited;

    I get this error:
    ORA-29913: error in executing ODCIEXTTABLEFETCH legend
    ORA-29400: data cartridge error
    Error opening file /u02/lpremia/ftp-in/EXT_TABLE_FDW_11948.bad

    Please help as it is very important for us to be able to read the last part of the timestamp.
    Thank you.
    Best regards
    Brinda

    user6361157 wrote:
    Hello
    I have a data file that looks like
    2011-08-15 00:00:00.000000 | 23:59:59.999999 2011-08-15
    DW_OPEN Char Date_Format Timestamp mask 'Mon dd yyyy Hh:Mi:Ss:Ff6'
    DW_Close Char Date_Format Timestamp mask 'Mon dd yyyy Hh:Mi:Ss:Ff6'

    The MASK is NOT March data!
    'YYYY-MM-DD HH24:MI:SS:Ff6 ".

  • Using the external Table

    Oracle 11.2.0.1
    Windows 7 Edition Home Premium 64-bit

    On every weekend, we get a file with the text like this:
    CUST_NAME:M/S ABC & COMPANY
    --------------------------------------------------------------------------------
    PROD_ID                              PR_05          STEAM_PIPE                              
    BILL_AMOUNT_ADVANCE                    1245.07          WITH VAT     
    BILL_DATE                         17-03-2011     
    GOODS_DELIVERED_ON                    20-03-2011     HAPPY CARGO
    
    
    CUST_NAME:M/S XYZ & COMPANY
    --------------------------------------------------------------------------------
    PROD_ID                              PR_09          PAPER_BAGS                              
    BILL_AMOUNT_CREDIT                    4000.07          WITHOUT VAT     
    BILL_DATE                         17-03-2011     
    GOODS_DELIVERED_ON                    20-03-2011     SHIVAM COURIER
    
    ...
    All ABOUT 100-125 billing information for our various regional staffs.

    We need an external table something like this:

    CREATE TABLE REGIONS_SALE
    (
    COL1 VARCHAR2 (40),
    COL2 VARCHAR2 (30),
    COL3 VARCHAR2 (15).
    COL4 VARCHAR2 (20)
    );

    And data should looks like this:

    Select * from REGIONS_SALE;
    COL1                    COL2                    COL3          COL4
    ABC & COMPANY               PROD_ID                    PR_05          STEAM_PIPE     
    ABC & COMPANY               BILL_AMOUNT_ADVANCE          1245.07          WITH VAT
    ABC & COMPANY               BILL_DATE               17-03-2011
    ABC & COMPANY               GOODS_DELIVERED_ON          20-03-2011     HAPPY CARGO
    XYZ & COMPANY               PROD_ID                    PR_09          PAPER_BAGS
    XYZ & COMPANY               BILL_AMOUNT_CREDIT          4000.07          WITHOUT VAT
    XYZ & COMPANY               BILL_DATE               17-03-2011     
    XYZ & COMPANY               GOOD_DELIVERED_ON          20-03-2011     SHIVAM COURIER
    Kindly help me, how to create the external table with the name of firms repeated in the COL1 of fixed length text file.

    Thanking you.

    One way is to create a view:

    SQL> CREATE TABLE TEST_EXT
      2  (
      3    str  VARCHAR2(4000 BYTE),
      4    RN         NUMBER
      5  )
      6  ORGANIZATION EXTERNAL
      7    (  TYPE ORACLE_LOADER
      8       DEFAULT DIRECTORY TESTDIR
      9       ACCESS PARAMETERS
     10         ( RECORDS DELIMITED BY NEWLINE
     11            BADFILE 'test.bad'
     12            LOGFILE 'test.log'
     13            NODISCARDFILE
     14            READSIZE 1048576
     15            FIELDS LDRTRIM
     16            REJECT ROWS WITH ALL NULL FIELDS
     17                ( str         (1:4000)     CHAR(4000),
     18                  rn recnum
     19         )                )
     20       LOCATION (TESTDIR:'test.txt')
     21    );
    
    Table created.
    
    SQL> create or replace view test_vu as
      2  select col1,col2,col3,col4
      3  from(
      4      select str,max(case when str like 'CUST_NAME:%' then replace(str,'CUST_NAME:') else null end) over(partition by sm) col1,
      5             regexp_substr(str,'[^   ]+') col2,regexp_substr(str,'[^ ]+',1,2) col3,regexp_substr(str,'[^     ]+',1,3) col4
      6      from(
      7          select sum(case when str like 'CUST_NAME:%' then 1 else 0  end ) over(order by rn) sm,t.*
      8          from TEST_EXT t
      9          where str like 'CUST_NAME%'
     10          or str like 'PROD_ID%'
     11          or str like 'BILL_AMOUNT%'
     12          or str like 'BILL_DATE%'
     13          or str like 'GOODS_DELIVERED%'
     14         )
     15       )
     16  where str not like 'CUST_NAME:%';
    
    View created.
    
    SQL> select * from test_vu;
    
    COL1                                     COL2                      COL3                           COL4
    ---------------------------------------- ------------------------- ------------------------------ ------------------------------
    M/S ABC & COMPANY                        PROD_ID                   PR_05                          STEAM_PIPE
    M/S ABC & COMPANY                        BILL_AMOUNT_ADVANCE       1245.07                        WITH VAT
    M/S ABC & COMPANY                        BILL_DATE                 17-03-2011
    M/S ABC & COMPANY                        GOODS_DELIVERED_ON        20-03-2011                     HAPPY CARGO
    M/S XYZ & COMPANY                        PROD_ID                   PR_09                          PAPER_BAGS
    M/S XYZ & COMPANY                        BILL_AMOUNT_CREDIT        4000.07                        WITHOUT VAT
    M/S XYZ & COMPANY                        BILL_DATE                 17-03-2011
    M/S XYZ & COMPANY                        GOODS_DELIVERED_ON        20-03-2011                     SHIVAM COURIER
    
    8 rows selected.
    
  • The group using the external table name

    Hello

    I used the following link and I was able to create groups based on these steps. However I have a question, in the initialization block SQL SQL has a variable name,
    Select "GROUP «groupname...»» ». How is the presentation layer knows that the name of the variable 'GROUP' is attributed to membership in a group? Thank you.

    http://obieeblog.WordPress.com/2009/06/18/OBIEE-security-enforcement-%E2%80%93-external-database-table-authorization/

    Griup is a session of the system variable. As soon as you crush with block values init, same value will be overwritten at each location.

    Kind regards
    Sandeep

  • ORA-29913 of the external table error: error in executing ODCIEXTTABLEOPEN legend

    Hello

    I am getting error for an external table, after trying to load data from external table to a pipe delimited file.
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-04040: file BIPO_04_28_2010_18_53_11.txt in AB501 not found
    29913. 00000 -  "error in executing %s callout"
    *Cause:    The execution of the specified callout caused an error.
    *Action:   Examine the error messages take appropriate action.
    Here's the code for creating table
    CREATE TABLE ' || whr_ext_tab || '
        (
            partner_product_code VARCHAR2(30), -- Partner’s product code or part number
            product_description VARCHAR2(60), -- Product description
            po_comments VARCHAR2(254), -- Purchase Order Comments
            wr_member_number VARCHAR2(60), -- Rewards Member Number
        )
        ORGANIZATION EXTERNAL
          (  TYPE ORACLE_LOADER
             DEFAULT DIRECTORY "<dir>"
             ACCESS PARAMETERS
               ( RECORDS DELIMITED BY NEWLINE
                        BADFILE ''BIPO.bad''
                        LOGFILE ''BIPO.log''
                        FIELDS TERMINATED BY ''|''
                        MISSING FIELD VALUES ARE NULL
                 )
             LOCATION ("<dir>":''<fn>'')
          )
        REJECT LIMIT UNLIMITED
        NOPARALLEL
        NOMONITORING
      ';
    Thank you
    Sandy

    Have you seen this in the error message:

    KUP-04040: file BIPO_04_28_2010_18_53_11.txt in AB501 not found
    

    What is the file exists in the directory? You have permissions to read from the object Directory logical Oracle? You have OS permissions to read from this directory?

  • Load the oracle database using the external table

    LKM:LKM file for oracle (external tables)
    Added command IKM:IKM sql
    Mapping: automatic mapping
    Error in step: insert new lines
    java.sql.SQLException: ORA-29913: error in executing ODCIEXTTABLEOPEN legend
    ORA-29400: data cartridge error
    opening the file in error... /Demo/file/test.txt_000.log

    Description:
    insert into TARGET_Schema.TARGET_Table
    (
    ColumnA,
    ColumnB,
    ColumnC
    )
    Select
    C1_ColumnA,
    C2_ColumnB,
    C3_ColumnC

    of ODI. C$ _0TARGET_Table
    where
    (1 = 1)
    answer please, how to solve this error.

    Hello

    GOTO topology and make sure that the database server has full path as D:\oracle\oracledi\oracledi\demo\file name

    and do not... file/demo /.

    After testing this issue, it should work fine.

    Thank you
    Fati

  • Problem with the format of the external tables

    I am using the external Tables feature in Oracle.

    The code I am using currently to create my table is (I cut down the list of fields for clarity).
    create table EMP_EXTERNAL2
    (HIREDATE DATE )
    organization external
    ( default directory EXT_TABLES
    access parameters
    ( records delimited by newline
    fields terminated by ',')
    location ('EMP.CSV') )
    
    REJECT LIMIT 0
    ;
    But I get rejected folders when I select in the table due to the format of the HIRE date. The examples I've found suggest using a date format, change the code to:
    create table EMP_EXTERNAL2
    (HIREDATE DATE 'mm/dd/yyyy')
    organization external
    ( default directory EXT_TABLES
    access parameters
    ( records delimited by newline
    fields terminated by ',')
    location ('EMP.CSV') )
    
    REJECT LIMIT 0
    ;
    When I run this I get ORA-00907: lack the closing parenthesis. What I'm doing wrong here (I'm under the code in SQL Developer incidentally)?

    Hello

    Try this: -.

    create table EMP_EXTERNAL2
    (HIREDATE DATE )
    organization external
    ( default directory EXT_TABLES
    access parameters
    ( records delimited by newline
    fields terminated by ','
    (
    HIREDATE DATE 'MM/DD/YYYY'
    ))
    location ('EMP.CSV') )
    
    REJECT LIMIT 0
    

    -Pavan Kumar N

  • Measurement error of the County of edge by using the external sample clock

    Hello

    I'm trying to measure the number of edges (rising) on a square wave at 5 kHz with a generator function on a device of the NI PCIe-6363. I configured a channel of County of front edge of counter at the entrance of the PFI8 device. I use an external sample clock that is provided by the output of the meter of a NI USB-6211 housing channel. If I acquire for 10secs then ideally I would expect to see a total of 50000 edges measured on the meter inlet channel. However, my reading is anywhere between 49900 and 50000.

    When I use the internal clock of time base to measure the edges, the measure is accurate and almost always exactly 50000. I understand that when you use the external sample clock, the precision of the measurements is subject to noise level of the clock signal. However, I checked the clock signal is stable and not very noisy. Any reason why there is an error of measurement and how tolerance should I expect when using an external sample clock compared to when you use the internal time base clock?

    Also, what is best clock Frequency (with respect to the frequency of the input signal) when using an external clock?

    Thank you

    Noblet

    Hi all

    Thanks for all your sugggestions. I was using an input signal with a function generator which had a range of 8V. It turns out that the reduction of the amplitude to 5V solves the problem. I was able to get accurate numbers with the 6211 external clock.

    Thank you

    Noblet

  • Used the external drive for catalog/photos for months. Yesterday-&gt; error msg: "LR cannot open the catalog"StanLRCatalogRepaired"on"Seagate Drive - LR Photos"because LR cannot save changes to this place. LR catalogs cannot be opened on removable disks,

    Used the external drive for catalog/photos for months. Yesterday-> error msg: "Lightroom can't open the catalog named"StanLRCatalogRepaired"located on the 'Seagate Drive - LR Photos' volume because Lightroom can't save the changes to this place. Lightroom catalogs not opening on the network volumes, removable storage, or read only volumes. »

    The first thing to do is to check if somehow the permissions for the drive Seagate or any of its relevant folders/subfolders has changed somehow (an OS update maybe?)

  • Error when calling a procedure using an external table with c#.

    Hello

    I'm developing an application scheduler with Visual Studio 2010 (c#) to start my PL/SQL procedures.

    Everything works fine with each procedure, but one who reads the contents of an external table.

    Strange thing is when I start the same procedure with Toad, I have no problem, but when I run with my c# code:

    OracleCommand cmdMET = new OracleCommand();

    cmdMET.CommandText = 'STG_AE. M_MET_S_EXT_DEFECT ';

    cmdMET.CommandType = CommandType.StoredProcedure;

    con = cmdMET.Connection;

    OracleParameter retvalMET = new OracleParameter ("value", OracleDbType.Varchar2, 50);

    retvalMET.Direction = ParameterDirection.ReturnValue;

    cmdMET.Parameters.Add (retvalMET);

    cmdMET.ExecuteNonQuery ();

    I got this error:

    ORA-29913: error in executing ODCIEXTTABLEFETCH legend

    ORA-01722: invalid number

    ORA-06512: at "STG_AE. M_MET_S_EXT_DEFECT', line 8

    ORA-06512: at "STG_AE. MET_SRC', line 10

    ORA-06512: at "STG_AE. PUTS", line 14

    ORA-06512: at line 1

    I can't understand why it works when I run it with Toad and why I get this error when launching of it with c#... Any advice would be great!

    Thank you!

    I can't understand why it works when I run it with Toad and why I get this error when launching of it with c#... Any advice would be great!

    The error led to think that a string to number conversion fails all by accessing the external table.

    What is the format of numeric fields in the external file?

    I'm guessing that your session NLS_NUMERIC_CHARACTERS setting is defined differently whether you're in your application c# or toad.

    Could check you on both?

  • Embedded the swf using the external video (FLVPlayback) error #2035 / #2044

    I struggled with this a lot recently, and I don't even know if it's at all possible.

    I am currently working on a project where I am incorporating a .swf inside another .swf.

    The built-in .swf file however also uses the external videos FLVPlayback to load component, this is where the problem starts.

    When you publish the .fla project I get the 2035 # IOErrorEvent when tracing the problem I get the #2044, it is to be expected however.

    The embedded swf is always looking for external videos, but since the new ROOT is the swf file, in which it is integrated, it will not find these videos.

    I need to know if there is a way I can specify or link these external videos required by the embedded swf file FLVPlayback component.

    I really can't be bothered again all the video content and their incorporation in the timeline.

    Thank you.

    The code inside the SWF will trigger these errors will occur if you don't have the source for sovereign wealth funds to stop it.

    If you do then you can just access SWF files loaded the mother/stub swf you have and check anything with a name or instance on the display list with the code, as all of the FLVPlayback components. You can then tell them the correct path.

    Otherwise, it would take something like a rewrite mod apache to redirect paths incorrect film to the correct path.

  • How to validate totall character in a file using the extrnal table

    Hi all

    I have an external as table below

    CREATE TABLE 'WE_INT '. "" XTB_INVADJ_FROM_POS ".

    ("TRANSACTIONDATE" VARCHAR2 (14 BYTE),

    VARCHAR2 (2 BYTE) "LOCATION_TYPE."

    VARCHAR2 (4 BYTE) "LOCATION_VALUE."

    VARCHAR2 (3 BYTE) "ITEM_TYPE."

    VARCHAR2 (13 BYTE) "ITEM_VALUE."

    VARCHAR2 (5 BYTE) "UPC_SUPPLEMENT."

    VARCHAR2 (2 BYTE) "INVENTORY_STATUS."

    VARCHAR2 (2 BYTE) "ADJUSTMENT_REASON."

    VARCHAR2 (1 BYTE) "ADJUSTMENT_SIGN."

    "SET AMOUNT" VARCHAR2 (8 BYTE).

    VARCHAR2 (4 BYTE) "ADJ_QTY_DECIMAL_VALUE".

    )

    EXTERNAL ORGANIZATION

    (TYPE ORACLE_LOADER

    DEFAULT DIRECTORY 'LOC_SOURCE_POS2RMS_INVADJ '.

    ACCESS SETTINGS

    (RECORDS DELIMITED BY NEWLINE

    CHARACTERSET WE8MSWIN1252

    STRING SIZES ARE IN BYTES

    WHEN LOAD)

    ((1:5) = "TDETL")

    )

    BADFILE "XTB_INVADJ_FROM_POS.bad."

    DISCARDFILE 'XTB_INVADJ_FROM_POS.dis '.

    LOGFILE "XTB_INVADJ_FROM_POS.log".

    FIELDS

    LTRIM

    (

    "TRANSACTIONDATE" POSITION (30:43) DATE,

    "LOCATION_TYPE" POSITION (44:45) TANK,

    "LOCATION_VALUE" POSITION (46:49) TANK,

    "ITEM_TYPE" POSITION (50:52) TANK,

    "ITEM_VALUE" POSITION (53:65) TANK,

    "UPC_SUPPLEMENT" POSITION (66:70) TANK,

    "INVENTORY_STATUS" POSITION (71:72) TANK,

    "ADJUSTMENT_REASON" POSITION (73:74) TANK,

    "ADJUSTMENT_SIGN" POSITION (75) TANK,

    "SET AMOUNT" POSITION (76:83) TANK,.

    CHAR POSITION (84:87) "ADJ_QTY_DECIMAL_VALUE".

    )

    )

    LOCATION

    ("inv.txt"

    )

    )

    REJECT LIMIT UNLIMITED;

    If you see my conetent file that it will be as below.

    TDETL00000000020000000000000120100127181611ST6009SKU75001056 0023-000000400000

    I want to validate the chracters total if this line is to have more or less of 87 87 he must raise the error.

    You can use a column in the external table that contains all characters and a view that selects in the outer table, limiting the lines based on the length of the column that contains all characters, such as shown below.  You can create a separate view for those! = 87 if you want a list of releases.

    Scott@orcl12c > c:\my_oracle_files\inv.txt TYPE of HOST

    TDETL00000000020000000000000120100127181611ST6009SKU75001056 0023-00000040086

    TDETL00000000020000000000000120100127181611ST6009SKU75001056 0023-000000400087

    TDETL00000000020000000000000120100127181611ST6009SKU75001056 0023-0000004000088

    Scott@orcl12c > CREATE or REPLACE DIRECTORY LOC_SOURCE_POS2RMS_INVADJ AS 'c:\my_oracle_files '.

    2.

    Created directory.

    Scott@orcl12c > external_table CREATE TABLE

    2 ("TRANSACTIONDATE" VARCHAR2 (14 BYTE),

    VARCHAR2 (2 BYTE) 3 'LOCATION_TYPE. "

    VARCHAR2 (4 BYTE) 4 "LOCATION_VALUE."

    VARCHAR2 (3 BYTE) 5 'ITEM_TYPE. "

    VARCHAR2 (13 BYTE) 6 "ITEM_VALUE."

    VARCHAR2 (5 BYTE) 7 "UPC_SUPPLEMENT."

    VARCHAR2 (2 BYTE) 8 "INVENTORY_STATUS."

    VARCHAR2 (2 BYTE) 9 "ADJUSTMENT_REASON."

    10 'ADJUSTMENT_SIGN' VARCHAR2 (1 BYTE),

    11 "SET AMOUNT" VARCHAR2 (8 BYTE).

    VARCHAR2 (4 BYTE) 12 "ADJ_QTY_DECIMAL_VALUE."

    13 total_characters VARCHAR2 (255)

    14)

    15 EXTERNAL ORGANIZATION

    16 (TYPE ORACLE_LOADER

    17 DEFAULT DIRECTORY 'LOC_SOURCE_POS2RMS_INVADJ '.

    18 ACCESS SETTINGS

    19 (RECORDS DELIMITED BY NEWLINE

    CHARACTERSET 20 WE8MSWIN1252

    21 STRING SIZES ARE IN BYTES

    22 LOAD WHEN)

    23 ((1:5) = "TDETL")

    24)

    25 BADFILE "XTB_INVADJ_FROM_POS.bad."

    26 DISCARDFILE 'XTB_INVADJ_FROM_POS.dis '.

    27 LOGFILE "XTB_INVADJ_FROM_POS.log".

    28 FIELDS

    LTRIM 29

    30        (

    31 "TRANSACTIONDATE" POSITION (30:43) DATE,

    32 'LOCATION_TYPE"POSITION (44:45) TANK,

    33 "LOCATION_VALUE" POSITION (46:49) TANK,

    34 'ITEM_TYPE"POSITION (50:52) TANK,

    35 'ITEM_VALUE' POSITION (53:65) TANK,

    36 "UPC_SUPPLEMENT" POSITION (66:70) TANK,

    37 "INVENTORY_STATUS" POSITION (71:72) TANK,

    38 "ADJUSTMENT_REASON" POSITION (73:74) TANK,

    39 'ADJUSTMENT_SIGN' POSITION (75) TANK,

    40 "SET AMOUNT" POSITION (76:83) TANK,.

    41 'ADJ_QTY_DECIMAL_VALUE' POSITION (84:87) TANK,

    42 total_characters POSITION(1:255) TANK

    43        )

    44                  )

    LOCATION 45

    46 ("inv.txt"

    47         )

    48)

    RELEASE 49 UNLIMITED LIMIT

    50.

    Table created.

    Scott@orcl12c > SELECT * from external_table

    2.

    TRANSACTIONDAT LO LOCA ITE ITEM_VALUE UPC_S IN AD AN ADJ_ ADJUSTME

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

    TOTAL_CHARACTERS

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

    20100127181611 ST 6009 SKU 75001056 00 23 - 00000040 086

    TDETL00000000020000000000000120100127181611ST6009SKU75001056 0023-00000

    040086

    20100127181611 ST 6009 SKU 75001056 00 23 - 00000040 0087

    TDETL00000000020000000000000120100127181611ST6009SKU75001056 0023-00000

    0400087

    20100127181611 ST 6009 SKU 75001056 00 23 - 00000040 0008

    TDETL00000000020000000000000120100127181611ST6009SKU75001056 0023-00000

    04000088

    3 selected lines.

    Scott@orcl12c > external_table FROM SELECT LENGTH (total_characters)

    2.

    LENGTH (TOTAL_CHARACTERS)

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

    86

    87

    88

    3 selected lines.

    Scott@orcl12c > xtb_invadj_from_pos VIEW to CREATE or REPLACE AS

    2. SELECT "TRANSACTIONDATE"

    3 "LOCATION_TYPE."

    4 'LOCATION_VALUE. "

    5 "ITEM_TYPE."

    6 "ITEM_VALUE."

    7 "UPC_SUPPLEMENT"

    8 "INVENTORY_STATUS"

    9 "ADJUSTMENT_REASON."

    10 "ADJUSTMENT_SIGN."

    11 "QUANTITY ADJUSTMENT."

    12 'ADJ_QTY_DECIMAL_VALUE '.

    13 FROM external_table

    14 WHERE the LENGTH (total_characters) = 87

    15.

    Created view.

    Scott@orcl12c > SELECT * FROM xtb_invadj_from_pos

    2.

    TRANSACTIONDAT LO LOCA ITE ITEM_VALUE UPC_S IN AD AN ADJ_ ADJUSTME

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

    20100127181611 ST 6009 SKU 75001056 00 23 - 00000040 0087

    1 selected line.

  • The external Table storage

    Since data is stored outdoors, and the definition that is stored inside, it means that a the table structure of the outer table is stored in the database as well (or a virtual table based on the definition of the external table...)

    I'll hit the ORA-DOCS again once, back in the external tables read tonight on them 2 or 3 sources and it is not quite clear whether real data with structure exists outside the database or an internal table set (and stored) retrieves data from an outside source.

    Since data is stored outdoors, and the definition that is stored inside, it means that a the table structure of the outer table is stored in the database as well (or a virtual table based on the definition of the external table...)

    The 'definition' you refer to IS the structure of the table; they are one and the same. There is no 'table' stored in the database using space or storage. When a query on an external table is executed, the data source is read.

    
    I'll be hitting the ORA-DOCS up again, just got back into external tables tonight reading up on them from 2-3 sources and it is not quite clear if an actual data with structure exists out of the database , or an internally defined (and stored?) table draws data from an outside source.
    

    I suggest you that start with the documentation of Oracle - including the ground provided the link to:

    If any "metadata" are stored outside the database depends on if the file that is outside of the database was produced by Oracle using the robot UNLOADING discussed in this doc

    Unloading of data using ORACLE_DATAPUMP Access driver

    To unload data, you use the ORACLE_DATAPUMP driver access. The stream that is discharged is in a proprietary format and contains all of the data column for each row being unloaded.

    A discharge operation also creates a stream of metadata that describes the content of the data stream. The information in the metadata stream are required to load the stream. Therefore, the metadata stream is written to the file data and placed before the data stream.

    If YOU provide data/files, then you MUST provide it in the format expected by the external table statement. You can, if you wish, use a preprocessor to convert ANY file (zip, encrypted, etc.) in the required format.

    For YOUR files, you can the metadata stored in the same file, or elsewhere, if you choose, but Oracle will have NO knowledge of this fact and not will NOT be involved in the transformation or read any of the metadata that you provide. Your preprocessor must remove all these metadata and ONLY provide data in the format appropriate for Oracle to use.

    If the file was produced by the process of UNLOADING Oracle then it will include metadata that Oracle WILL read, use, and remove as says this quote from doc above. These external metadata is added to the real external table definintion/metadata stored in the dictionary.

Maybe you are looking for