Error Querying Contents of External Table

I get the error below from JDeveloper when I try to query the contents of an external table that I created in OWB. The Validate, Generate & Deploy actions were successful on the External Table. The location ALAN_TARGET_LOC_FILES_LOC resolves to where the flat files that the external tables refer to reside on Linux Server. This seemed to work fine last week… Any ideas what may have broke?
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04040: file wire.mock in ALAN_TARGET_LOC_FILES_LOC not found
ORA-06512: at "SYS.ORACLE_LOADER", line 19
ORA-06512: at line 1
Alan Lichtenstein • Programming • SunGard • Professional Services • 595 E. Swedesford Road, Suite 3000, Wayne, PA 19087
Tel 610-975-3168 • Fax 610-975-3062 • www.sungard.com/bondmaster
CONFIDENTIALITY: This email (including any attachments) may contain confidential, proprietary and privileged information, and unauthorized disclosure or use is prohibited. If you received this email in error, please notify the sender and delete this email from your system. Thank you.

Is there any way to find out the physical path
that 'owbdir' resolves to?
owner directory_name directory_path
SYS     ALAN_TARGET_LOC_FILES_LOC     owbdirSeems to me that the directory path is wrong. Under directory path you should see the real physical path you specified when you created the directory. Here's what select * from all_directories shows on my system (excerpt):
OWNER DIRECTORY_NAME DIRECTORY_PATH
SYS LOC_COCKPIT_OWB_LOC_FLAT_FILES E:\DATEN\01_ENTWICKLUNG\07_BEWIRTSCHAFTUNG\FF_DATEN\
As you can see directory path contains the physical path where my flat files reside.
Regards,
Jörg

Similar Messages

  • Error in creating an external table referring to a XML file

    I've got an XML file and I've tried to create an external table referring to it in this way:
    CREATE TABLE mytable
        XML_DATA_COLUMN XMLType
      ORGANIZATION EXTERNAL
        TYPE ORACLE_LOADER DEFAULT DIRECTORY TEST_DIR
        ACCESS PARAMETERS ( records delimited BY newline
        (XML_DATA_COLUMN LOB) ) LOCATION ( 'myfile.xml' )
    where TEST_DIR is the directory where myfile.xml is stored,
    but I get this message:
    Error at Command Line:3 Column:4
    Error report:
    SQL Error: ORA-30656: column type not supported on external organized table
    30656.0000 -  "column type not supported on external organized table"
    *Cause:    Attempt to create an external organized table with a column
               of type LONG, LOB, BFILE, ADT, or VARRAY.
    *Action:   These column types are not supported, change the DDL.
    I want to have in the XML_DATA_COLUMN the content of myfile.xml so as to handle it by using extract and extractvalue functions.
    My oracle version is 10gR2 Express Edition
    Thanks!

    The examples in the following thread include an insert, but you could also use the select statement alone without the insert.
    http://www.orafaq.com/forum/mv/msg/172162/511897/0/#msg_511897

  • Error while creating oracle external table

    I am trying to create an external table with the following syntax. WhenI have executed this statement in my server which running in my machine, it is working fine. Whine I try to run the same statement on different server, it is giving the below error. I have verified the grants on both the schemas, they are simillar.
    create table ext_ORGBASIC_CLIENT1(
    Serial_Number varchar2(1000),
    Add_Edit_Organization varchar2(1000),
    Parent_Organization varchar2(1000),
    Organization_Code varchar2(1000),
    Organization_Name varchar2(1000),
    Legal_Entity varchar2(1000),
    Active varchar2(1000),
    Require_Entity_Use__as_Matchin varchar2(1000),
    Pass_On_Tax_On_Tax_To_Customer varchar2(1000),
    Allow_Exemption_Without_Receiv varchar2(1000),
    Entiy_Use_Code_Association varchar2(1000),
    Tax_Calculation_Type_Code varchar2(1000),
    Transaction_Type_Code varchar2(1000),
    Transaction_Source_Code varchar2(1000),
    Taxware_Delivery_Terms_Code varchar2(1000),
    Taxware_Mode_of_Transport_Code varchar2(1000),
    Debit_Credit_Indicator varchar2(1000),
    Discount_Type_Code varchar2(1000),
    Place_of_Principal_Negotiation varchar2(1000),
    Quantity_Unit_of_Measure_Code varchar2(1000),
    Good_Service_Category_Code varchar2(1000),
    Tax_Rate_Of_Geo_Code_To_Be_Aut varchar2(1000))
    organization external
    ( type oracle_loader default directory EXT_TAB_DIR
    access parameters ( records delimited by newline characterset US7ASCII load
    when (serial_number != 'Number' and serial_number != '#')
    badfile 'EXT_TAB_DIR':'CLIENT1.bad'
    logfile 'EXT_TAB_DIR':'CLIENT1.log'
    fields terminated by ',' optionally enclosed by '"' lrtrim missing field values are null
    reject rows with all null fields )
    location ('C_CLIENT1_TXWR_FS1_TWEBULK_ORGBASIC_1_1_20091126102230_001_CSV.csv') )
    parallel reject limit unlimited
    while querieng from the table I am getting the below error
    select * from ext_orgbasic_client1;
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-04001: error opening file CLIENT1.log
    ORA-06512: at "SYS.ORACLE_LOADER", line 19

    I try to run the same statement on different server, it is giving the below errorSame OS name & version?
    Same Oracle version to 4 decimal places?
    Same OS file permissions?
    Same OS pathnames?

  • Error when Importing a External table

    When I am trying to import a external table I am getting a error as SQL Exception. Any ideas as to how to fix this error.
    The external table is under one schema. I have a locator in OWB pointing to that schema and I am trying to Import the external table. I am able to see this table in TOAD.
    Thanks

    Repository Error:SQL Exception..
    Class Name: CacheMediator.
    Method Name: getDDEntryFromDB.
    Repository Error Message: ORA-22992: cannot use LOB locators selected from remote tables
         at oracle.wh.repos.pdl.foundation.CacheMediator.getSQLResult(CacheMediator.java:504)
         at oracle.wh.repos.impl.CMPWBAPIFactory.getSQLResult(CMPWBAPIFactory.java:2137)
         at oracle.wh.service.sdk.integrator.RepositoryUtils.getSQLResult(RepositoryUtils.java:448)
         at oracle.wh.service.sdk.integrator.RepositoryUtils.getSQLResult(RepositoryUtils.java:413)
         at oracle.wh.ui.integrator.oracle.WBOracleDatabaseEntityAccessor.getAccessParametersSQLResult(WBOracleDatabaseEntityAccessor.java:518)
         at oracle.wh.ui.integrator.oracle.WBOracleDatabaseEntityAccessor.getAccessParameters(WBOracleDatabaseEntityAccessor.java:459)
         at oracle.wh.ui.integrator.common.ImportEntityAlgorithm.importAccessParameters(ImportEntityAlgorithm.java:2724)
         at oracle.wh.ui.integrator.common.ImportEntityAlgorithm.importExternalTable(ImportEntityAlgorithm.java:1499)
         at oracle.wh.ui.integrator.common.ImportEntityAlgorithm.dispatchElement(ImportEntityAlgorithm.java:583)
         at oracle.wh.ui.integrator.common.ImportEntityAlgorithm.importElement(ImportEntityAlgorithm.java:366)
         at oracle.wh.ui.integrator.sdk.EntityAccessor.importElement(EntityAccessor.java:80)
         at oracle.wh.ui.integrator.common.ImportService.importElement(ImportService.java:1046)
         at oracle.wh.ui.integrator.common.wizards.ImportElementTransaction.run(ImportWizardDefinition.java:578)

  • Hi, i am getting an error while using the External Table.

    Hi,
    I am getting the below error. External table has been created successfully and when I read the data from the external table i get the below error. Can anyone give solution of this error.
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-04063: unable to open log file EXT_ZPP0A871_6738.log
    OS error Permission denied
    ORA-06512: at "SYS.ORACLE_LOADER", line 19
    Thanks,
    Himanshu

    KUP-04063: unable to open log file EXT_ZPP0A871_6738.log
    OS error Permission deniedThe error seems quite clear... what's you OS and Oracle version ?

  • Error when loading from External Tables in OWB 11g

    Hi,
    I face a strange problem while loading data from flat file into the External Tables.
    ORA-12899: value too large for column EXPIRED (actual: 4, maximum: 1)
    error processing column EXPIRED in row 9680 for datafile <data file location>/filename.dat
    In a total of 9771 records nearly 70 records are rejected due to the above mentioned error. The column (EXPIRED) where the error being reported doesn't have value greater than 1 at all. I suspect it to be a different problem.
    Example: One such record that got rejected is as follows:
    C|234|Littérature commentée|*N*|2354|123
    highlightened in Bold is the EXPIRED Column.
    When I tried to insert this record into the External Table using UTL_FILE Utility it got loaded successfully. But when I try with the file already existing in the file directory it again fails with the above error, and I would like to mention that all the records which have been loaded are not Ok, please have a look at the DESCRIPTION Column which is highlightened. The original information in the data file looks like:
    C|325|*Revue Générale*|N|2445|132
    In the External Table the Description Value is replaced by the inverted '?' as follows:
    Reue G¿rale
    Please help.
    Thanks,
    JL.

    user1130292 wrote:
    Hi,
    I face a strange problem while loading data from flat file into the External Tables.
    ORA-12899: value too large for column EXPIRED (actual: 4, maximum: 1)
    error processing column EXPIRED in row 9680 for datafile <data file location>/filename.dat
    In a total of 9771 records nearly 70 records are rejected due to the above mentioned error. The column (EXPIRED) where the error being reported doesn't have value greater than 1 at all. I suspect it to be a different problem.
    Example: One such record that got rejected is as follows:
    C|234|Littérature commentée|*N*|2354|123
    highlightened in Bold is the EXPIRED Column.
    When I tried to insert this record into the External Table using UTL_FILE Utility it got loaded successfully. But when I try with the file already existing in the file directory it again fails with the above error, and I would like to mention that all the records which have been loaded are not Ok, please have a look at the DESCRIPTION Column which is highlightened. The original information in the data file looks like:
    C|325|*Revue Générale*|N|2445|132
    In the External Table the Description Value is replaced by the inverted '?' as follows:
    Reue G¿rale
    Please help.
    Thanks,
    JL.sorry, couldnt see the highlighted test.could you plesae enclsoe it in  tags
    also post the table definition with attributes. BTW..Whats your NLS_LANGUAGE SET TO?

  • Error Creating View on External Table

    I create my oracle directory connected as SYS as SYSDBA and grant read,write to public:
    CREATE OR REPLACE DIRECTORY ER_ADMIN_DIR AS 'C:\win32app\ingr\ER\ER_Init\scripts';
    grant read,write on directory ER_ADMIN_DIR to public;
    I creat my external table from SYS to reside in another schema called DRTEST:
    CREATE TABLE DRTEST.SPEC_REQUIRED (TABLE_NAME VARCHAR2(100), COLUMN_NAME VARCHAR2(100))
    ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY ER_ADMIN_DIR
    ACCESS PARAMETERS
    (RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    LOCATION ('atts_in_red.tx')
    REJECT LIMIT UNLIMITED ;
    I can select from the table and all is good at this point.
    However, I get an error when I try to create a view (in DRTEST from SYS) based on the external table.
    CREATE VIEW DRTEST.MYVIEW1 AS SELECT * FROM DRTEST.SPEC_REQUIRED;
    CREATE VIEW DRTEST.MYVIEW1 AS SELECT * FROM DRTEST.SPEC_REQUIRED
    ERROR at line 1:
    ORA-06564: object ER_ADMIN_DIR does not exist
    (note I'm still connected as SYS as SYSDBA here)
    I can create the view if I connect to DRTEST and run the exact same create view statement there. Is there something in Oracle that prevents me from doing this from the SYS account? I usually think of SYS as having the "Power of God to do all things".
    I have to create the external table and view on several schema's and I don't want the user to have to connect to each schema separately.
    Tina

    Tina,
    I think you are facing bug 2948123 (CREATE VIEW ON EXTERNAL TABLE ORA-6564). The workaround is to connect (in your case) as user DRTEST and then perform the CREATE VIEW statement (you tested this already). Or (according to the bug description) create the view under the SYS schema itself.

  • Error in creating the external table?

    SQL> create table oldemp (
    2 empno number(5),
    3 ename varchar2(20))
    4 organization external
    5 (type oracle_loader
    6 default directory emp_dir
    7 access parameters
    8 (records delimited by newline
    9 badfile 'bad_emp'
    10 logfile 'log_emp'
    11 fields terminated by ','
    12 (empno number(5),
    13 ename varchar2(20))
    14 LOCATION ('c:\EMP1.TXT'))
    15 PARALLEL 5
    16 REJECT LIMIT 200;
    PARALLEL 5
    ERROR at line 15:
    ORA-30648: missing LOCATION keyword
    SQL>

    error when inserting into the external table.
    Following is the error:
    SQL> create table oldemp (
    2 empno number(5),ename varchar2(20))
    3 organization external
    4 (type oracle_loader
    5 default directory emp_dir1
    6 access parameters
    7 (records delimited by newline
    8 badfile 'bad_emp'
    9 logfile 'log_emp'
    10 fields terminated by ','
    11 (empno number(5),
    12 ename varchar2(20)))
    13 LOCATION('EMP2.lst'))
    14 PARALLEL 5
    15 REJECT LIMIT 200;
    Table created.
    SQL> insert into oldemp values(100,'raj');
    insert into oldemp values(100,'raj')
    ERROR at line 1:
    ORA-30657: operation not supported on external organized table

  • Query related to external table authentication

    Hi Gurus,
    I am new to OBIEE. When we login to the Oracle Business intelligence, we used to give user as Administrator and password as Administrator.
    At this point, can we authentication the userid and password which is stored in external table in a users schema?
    ~ John

    "Administrator" will always be a user which is registered in the repository. All other users can be authenticated by external table authentication.
    You can create an init block which sets the USER system variable by
    SELECT user FROM users WHERE user = ':USER' and password = ':PASSWORD'

  • Querying external tables ERROR no not English version 10g R2 ¿BUG 5172459?

    Hello
    I have a serious problem when trying to view the content of external tables under Oracle 10R2 in Spanish
    Steps to perform:
    1. Make directory on file system (in oracle server side).
    2. Copy a data file into this directory.
    3. Login (sqlplus) as "sys as sysdba"
    4. Make one oracle directory object
    5. Grant permits read / write to a user 'simple_uesr'
    6. Logout sys, and login as 'simple_user'
    7. Make a external table, which uses the directory and data file.
    8. Run query 'select * from myExtTable' to check it.
    I have repeated these steps on Oracle 9i Enterprise, Oracle 10gR2 Enterprise, and Oracle 10g XE, and always, always worked perfectly (no problems).
    The problem occurs in the client's DB (Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 SPANISH), everything works fine until the step 8 (querying external tables), where systematically the following error occurs:
    ERROR en línea 1:
    ORA-29913: error al ejecutar la llamada de ODCIEXTTABLEOPEN
    ORA-29400: error de cartucho de datos
    KUP-00552: internal XAD package failed to load
    ORA-06512: en "SYS.ORACLE_LOADER", línea 19
    I have made many tests, such as assigning a wrong directory to external table, remove the data file, remove access permissions, and always, always gives the same error, nerver error "file not found...etc, etc".
    I have concluded that the failure, which occurs before Oracle even try to access the file system, but I do not know what may be the cause.
    Searching the Internet, I found the following links:
    http://www.dba-oracle.com/t_ora_29913_external_table_error.htm
    http://zalbb.itpub.net/post/980/249423
    Where mention the BUG 5172459 (MetaLink Note: 373168.1), but after follow the directions, still does not work.
    Can anyone help me with this problem?
    Thanks!
    Full details of the DB which gives the error
    SO: Windows 2003 Server Standard SP1.
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod
    PL/SQL Release 10.2.0.2.0 - Production
    CORE 10.2.0.2.0 Production
    TNS for 32-bit Windows: Version 10.2.0.2.0 - Production
    NLSRTL Version 10.2.0.2.0 - Production
    show parameter nls;
    NAME TYPE VALUE
    nls_calendar string
    nls_comp string
    nls_currency string
    nls_date_format string
    nls_date_language string
    nls_dual_currency string
    nls_iso_currency string
    nls_language string SPANISH
    nls_length_semantics string BYTE
    nls_nchar_conv_excp string FALSE
    nls_numeric_characters string
    nls_sort string
    nls_territory string SPAIN
    nls_time_format string
    nls_timestamp_format string
    nls_timestamp_tz_format string
    nls_time_tz_format string
    -- NLS_SESSION_PARAMETERS
    select * from NLS_SESSION_PARAMETERS order by parameter;
    PARAMETER VALUE
    NLS_CALENDAR GREGORIAN
    NLS_COMP BINARY
    NLS_CURRENCY €
    NLS_DATE_FORMAT DD/MM/RR
    NLS_DATE_LANGUAGE SPANISH
    NLS_DUAL_CURRENCY €
    NLS_ISO_CURRENCY SPAIN
    NLS_LANGUAGE SPANISH
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    NLS_NUMERIC_CHARACTERS ,.
    NLS_SORT SPANISH
    NLS_TERRITORY SPAIN
    NLS_TIME_FORMAT HH24:MI:SSXFF
    NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
    NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
    NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
    -- NLS_INSTANCE_PARAMETERS
    select * from NLS_INSTANCE_PARAMETERS order by parameter;
    PARAMETER VALUE
    NLS_CALENDAR
    NLS_COMP
    NLS_CURRENCY
    NLS_DATE_FORMAT
    NLS_DATE_LANGUAGE
    NLS_DUAL_CURRENCY
    NLS_ISO_CURRENCY
    NLS_LANGUAGE SPANISH
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    NLS_NUMERIC_CHARACTERS
    NLS_SORT
    NLS_TERRITORY SPAIN
    NLS_TIME_FORMAT
    NLS_TIMESTAMP_FORMAT
    NLS_TIMESTAMP_TZ_FORMAT
    NLS_TIME_TZ_FORMAT
    -- NLS_DATABASE_PARAMETERS
    select * from NLS_DATABASE_PARAMETERS order by parameter;
    PARAMETER VALUE
    NLS_CALENDAR GREGORIAN
    NLS_CHARACTERSET WE8MSWIN1252
    NLS_COMP BINARY
    NLS_CURRENCY ?
    NLS_DATE_FORMAT DD/MM/RR
    NLS_DATE_LANGUAGE SPANISH
    NLS_DUAL_CURRENCY ?
    NLS_ISO_CURRENCY SPAIN
    NLS_LANGUAGE SPANISH
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CHARACTERSET AL16UTF16
    NLS_NCHAR_CONV_EXCP FALSE
    NLS_NUMERIC_CHARACTERS ,.
    NLS_RDBMS_VERSION 10.2.0.2.0
    NLS_SORT SPANISH
    NLS_TERRITORY SPAIN
    NLS_TIME_FORMAT HH24:MI:SSXFF
    NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
    NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
    NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
    END.

    jpadron_uy wrote:
    ERROR en línea 1:
    ORA-29913: error al ejecutar la llamada de ODCIEXTTABLEOPEN
    ORA-29400: error de cartucho de datos
    KUP-00552: internal XAD package failed to load
    ORA-06512: en "SYS.ORACLE_LOADER", línea 19Hola!
    Let's go through errors you posted:
    First error (ORA-29913) indicating error occurs when Oracle tryed to access external table.
    Then ORA-29400 says that error has occurred in a data cartridge external procedure.
    And then finally KUP-00552 - an error was encountered while attempting to initialize the XAD package.
    So did you check state of the XAD package in that database?
    Also, please post code you used in steps 4. and 7.
    HTH

  • How to query an external table?

    hi,
    Can anyone help me, I created an external table but I cannot query the table... I encountered the error SQL Error: ORA-29913: error in executing ODCIEXTTABLEOPEN callout...
    Attached my SQL for your reference:
    CREATE OR REPLACE DIRECTORY dat_dir AS 'pos_file';
    CREATE OR REPLACE DIRECTORY log_dir AS '//10.101.21.175/pos_file/Log';
    CREATE OR REPLACE DIRECTORY bad_dir AS '//10.101.21.175/pos_file/Bad';
    CREATE TABLE revext (person VARCHAR2(20),
    rev_jan NUMBER(4),
    rev_feb NUMBER(4),
    rev_mar NUMBER(4),
    rev_apr NUMBER(4),
    rev_mai NUMBER(4),
    rev_jun NUMBER(4),
    rev_jul NUMBER(4),
    rev_aug NUMBER(4),
    rev_sep NUMBER(4),
    rev_oct NUMBER(4),
    rev_nov NUMBER(4),
    rev_dez NUMBER(4))
    ORGANIZATION EXTERNAL
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY dat_dir
    ACCESS PARAMETERS
    records delimited by newline
    fields terminated by ','
    ( person,
    rev_jan,
    rev_feb,
    rev_mar,
    rev_apr,
    rev_mai,
    rev_jun,
    rev_jul,
    rev_aug,
    rev_sep,
    rev_oct,
    rev_nov,
    rev_dez
    LOCATION ('revext.dat')
    Thank you,
    Dexter

    Hi! Thanks for your immediate response...
    Here's the complete error when I tried to query the created external table.
    Error starting at line 48 in command:
    select * FROM revext
    Error report:
    SQL Error: ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    error opening file pos_file/REVEXT_18225.log
    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.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • External Table Error Message

    Here is the error message I get when trying to query from an External Table:
    SQL> select * from customer;
    select * from customer
    ERROR at line 1:
    ORA-29913: error in executing ODCIEXTTABLEOPEN callout
    ORA-29400: data cartridge error
    KUP-04063: unable to open log file customer.log
    OS error No such file or directory
    ORA-06512: at "SYS.ORACLE_LOADER", line 14
    ORA-06512: at line 1
    I corrected the following:
    create table TU_DATA(
    ERROR at line 1:
    ORA-00406: COMPATIBLE parameter needs to be 9.0.0.0.0 or greater
    By Adding:
    COMPATIBLE 9.0.0
    to my /Users/oracle/9iR2/orahome/dbs/initdw.ora file

    What database utility are you using to view the table?
    If sqlplus try this:
    Col Entryno  For A20 Tru
    Col Glaccountno  For A20 Tru
    Col Postingdate  For A20 Tru
    Col Documenttype  For A20 Tru
    Col Documentno  For A20 Tru
    Col Description  For A20 Tru
    Col Balaccountno  For A20 Tru
    Col Amount  For A20 Tru
    Col Globaldimension1Code  For A20 Tru
    Col Globaldimension2Code  For A20 Tru
    Col Userid  For A20 Tru
    Col Sourcecode  For A20 Tru
    Col Balaccounttype  For A20 Tru
    Col Documentdate  For A20 Tru
    Col Sourceno  For A20 Tru
    Col Sourcetype For A20 Tru
    Select * From STG0_NAV_GL_ENTRY_EXT;:p

  • External Tables using Discoverer

    I am mapping the contents of a complex query to an external table. I am mapping the SUM() of each field to the external table. BUT... when I create a workbook using that complex folder, Discoverer correctly uses the external table but when I look at the actual query that is generated it performs a 'GROUP BY' on the the summary table (i.e my external table) prior to doing the query that I originally wanted.
    This is different than if Discoverer was managing the summary table. A very simple example is:
    External Table Query
    SELECT
    SUM(alias_avar)
    FROM
    (select id, SUM(avar) alias_avar
    FROM
    summarytable
    group by id)
    Discoverer Managed
    Select SUM(avar) from summarytable
    Thank you in advance for helping me with any ideas or workarounds.
    Mike

    Just a word...I have had NO LUCK with Oracle9i external tables accessing network drive with Windows Server 2003 spk1.
    I have read all the tips from Metalink and forums and nothing that works on Windows 2000 or NT work for 2003..Has anyone had any luck with this?
    UNC or mapped letters..The best I could do was GIVE EVERYPERMISSION and create a SUPER users with ALL groups and still then all external tables could do was move it to the error folder with a OS errors saying it could not open the file. I have the same setup locally and it opens fine.
    In fact UNC was the only way I could even touch the files..mapped drive letter did nothing ...

  • External Table Preprocessor

    Dear Experts,
    I was trying to explore the "preprocessor" command in external table, but I was not able to succeed.
    I just followed the steps mentioned in, latest Oracle Magazine.
    http://www.oracle.com/technetwork/issue-archive/2012/12-nov/o62asktom-1867739.html
    But finally when I do the select from table df, I am getting the following error.
    ORA-29913: error in executing ODCIEXTTABLEFETCH callout
    ORA-29400: data cartridge error
    KUP-04095: preprocessor command /export/csrmgr/ripple_dms/run_df.sh encountered error "error during exec: errno is 2
    PS: The output of v$version;
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    PL/SQL Release 11.2.0.2.0 - Production
    "CORE     11.2.0.2.0     Production"
    TNS for IBM/AIX RISC System/6000: Version 11.2.0.2.0 - Production
    NLSRTL Version 11.2.0.2.0 - Production
    Could anyone help me to resolve this issue.

    I'm not able to test Tom's example at the minute.
    However, that new feature was discussed in the March/April 2011 edition of Oracle Magazine too.
    Oracle Magazine March/April 2011 article on new feature in 11gR2 called the external table preprocessor.
    by Arup Nanda
    CHANGE IN PROCESS
    Now suppose that with your external table and its text file in place, the input file for the external table is compressed to reduce the volume of data transmitted across the network. Although compression helps the network bandwidth utilization, it creates a challenge for the ETL process. The file must be uncompressed before its contents can be accessed by the external table.
    Rather than uncompress the file in a separate process, you can use the preprocessor feature of Oracle Database 11g Release 2 with external tables to uncompress the file inline. And you will notneed to change the ETL process.
    To use the preprocessor feature, first you need to create a preprocessor program. The external table expects input in a text format but not necessarily in a file. The external table does not need to read a file; rather, it expects to get the file contents “fed” to it. So the preprocessor program must stream the input data directly to the external table—and not
    create another input file. The input to the pre-processor will be a compressed file, and the output will be the uncompressed contents.
    The following is the code for your new preprocessor program, named preprocess.bat:
    @echo off
    C:\oracle\product\11.2.0\dbhome_1\BIN\unzip.exe -qc %1The first line, @echo off, suppresses the output of the command in a Windows environment. The remaining code calls the unzip.exe utility located in the Oracle home. The utility needs an input file, which is the first (and only) parameter passed to it, shown as %1. The options q and c tell the utility to uncompress quietly (q) without producing extraneous output such as “Inflating” or “%age inflated” and match filenames case-insensitively (c), respectively.
    Next you need to create the directory object where this preprocessor program is located. Logging in as SYS, issue
    create directory execdir as 'c:\tools';And now grant EXECUTE permissions on the directory to the ETLADMIN user:
    grant execute on directory execdir to etladmin;Finally, create the new external table:
    create table indata1
      cust_id number,
      cust_name varchar2(20),
      credit_limit number(10)
    organization external
      type oracle_loader
      default directory etl_dir
      access parameters
        records delimited by newline
        preprocessor execdir:'preprocess.bat'
        fields terminated by ","
      location ('indata1.txt')
    /It calls the preprocess.bat executable in the directory specified by EXECDIR before the external table accesses the indata1.txt file in the location specified by the ETL_DIR directory. Remember, indata1.txt is now a compressed file. So, in effect, the external table reads not the actual specified input file but rather the output of preprocess.bat, which is the uncompressed data from the indata1.txt file.
    If you select from the external table now, the output will be similar to that of the earlier select * from indata1; query. The preprocessor passed the uncompressed contents of the indata1.txt (compressed) file on to the external table. There was no need to uncompress the file first—saving significant time and the intermediate space required and making it unnecessary to change the ETL process.
    This inline preprocessing unzip example uses a script, but that is not always necessary. An executable can be used instead. For example, in Linux you can use /bin/gunzip. However, the utility can’t accept any parameters. So if you pass parameters (as in this article’s example), you must use a script.
    Security Concerns
    =================
    The EXECUTE privilege on a directory is a new feature introduced in Oracle Database 11g Release 2. It enables the DBA to grant EXECUTE permissions only for certain directories and only to certain users. Without WRITE privileges, users will not be able to
    update the executables inside a directory to insert malicious code, but users will be able to execute the “approved” code accessible in a single location. The DBA can put all the necessary preprocessor tools into a single directory and grant EXECUTE privileges there to the users who may need them. And, of course, the executables and data should be in different directories.
    Preprocessing also requires some special precautions on the part of the DBA. Because the executables called by preprocessing programs will be executed under the privileges of the Oracle software owner and malicious executable code can cause a lot of damage, the DBA should be extremely careful in monitoring executables for potentially harmful code.
    The directory containing the preprocessor executables needs to be accessible to the Oracle software owner for EXECUTE operations only, not for WRITE activity. Therefore, as an added precaution, the system administrator can remove WRITE access to that directory from all users, including the Oracle software owner. This significantly reduces the chance of damage by malicious code.
    Other Uses
    ==========
    Compression is not the only use for inline preprocessing, although it certainly is the most widely used. You can, for example, use this preprocessing technique to show the output of a program as an external table. Consider, for instance, the dir command in Windows for listing the contents of a directory. How would you like to get the output as a table so that you can apply predicates?
    Getting and using this output is quite simple with the preprocessor functionality. Remember, the preprocessor does not actually need a file but, rather, requires the output of the preprocessor program. You can write a preprocessor program to send the
    output of a dir command. The new preprocessor program, named preproc_dir.bat, has only the following two lines:
    @echo off
    dirYou will also need a file for the external table. The contents of the file are irrelevant, so you can use any file that the Oracle software owner can read in a directory to which that owner has read access. For this example, the file is dirfile.txt, and although the contents of the file are immaterial, the file must exist, because the external table will access it. Listing 1 shows how to create the table.
    Because the dir command displays output in a prespecified manner, the external table easily parses it by reading the fields located in specific positions. For example, positions 1 through 10 display the date, 11 through 20 display the time, and so on. The dir command produces some heading and preliminary information that the external table has to ignore, so there is a skip 5 clause in Listing 1 that skips the first five lines of the output. The last few lines of the output show how many files and directories are present and how much free space remains. This output must be skipped as well, so the external table displays records only when the date column has a value.
    Listing 1 also shows the result of a query against the external table. Because the MOD_DT column is of the date datatype, you can also apply a WHERE condition to select a specified set of records.
    Code Listing 1:
    ===============
    create table dir_tab
      mod_dt date,
      mod_time char(10),
      file_type char(10),
      file_size char(10),
      file_name char(40)
      organization external
      type oracle_loader
      default directory etl_dir
      access parameters
        records delimited by newline
        preprocessor execdir:'preproc_dir.bat'
        skip 5
        load when (mod_dt != blanks)
        fields
          mod_dt position (01:10) DATE mask "mm/dd/yyyy",
          mod_time position (11:20),
          file_type position (21:29),
          file_size position (30:38),
          file_name position (39:80)
      location ('dirfile.txt')
    reject limit unlimited
    -- select from this table
    SQL> select * from dir_tab;
    MOD_DT        MOD_TIME       FILE_TYPE       FILE_SIZE      FILE_NAME
    16-DEC-10     10:12 AM       <DIR> .
    16-DEC-10     10:12 AM       <DIR> ..
    22-MAY-10     09:57 PM       <DIR> archive
    22-MAY-10     10:27 PM                                2,048 hc_alap112.dat
    05-DEC-10     07:07 PM                                   36 indata1.txt
    22-DEC-05     04:07 AM                               31,744 oradba.exe
    16-DEC-10     09:58 AM                                1,123 oradim.log
    28-SEP-10     12:41 PM                                1,536 PWDALAP112.ora
    16-DEC-10     09:58 AM                                2,560 SPFILEALAP112.ORA
    9 rows selected.
    -- select a file not updated in last 1 year
    SQL> select * from dir_tab where mod_dt < sysdate - 365;
    MOD_DT        MOD_TIME       FILE_TYPE       FILE_SIZE      FILE_NAME
    22-DEC-05     04:07 AM                               31,744 oradba.exe

  • Use of External tables to load XML data.

    Hi,
    I have used external table definitions to load various XML files to the database, usually splitting the XML into seperate records - 1 per major element tag, and using PL/SQL to parse out a primary key to store in a relational table with all of the XML relevant to that primary key value stored as an XMLTYPE coumn in a row of the table. This has worked fine for XML with a single major entity (element tag) .
    However, I now have an XML file that contains two "major" elements (both children of the root) that I would like to split out and store in seperate tables.
    The XML file is of the following basic format:-
    <drugs>
    <drug>drug 1...</drug>
    <drug>drug 2...</drug>
    <partners>
    <partner>partner 1</partner>
    <partner>partner 2</partner>
    </partners>
    </drugs>
    The problem is there are around 18000 elements of the first type, followed by several thousand of the 2nd type. I can create two seperate external tables - one for each element type, but how do I get the external table for the 2nd to ignore all the elements of the first type? My external table definition is :-
    CREATE TABLE DRUGBANK_OWNER.DRUGBANK_PARTNERS_XML_EXTERNAL
    DRUGBANK_XML CLOB
    ORGANIZATION EXTERNAL
    ( TYPE ORACLE_LOADER
    DEFAULT DIRECTORY DRUGBANK_DIR
    ACCESS PARAMETERS
    ( records delimited by "</partner>" SKIP 100000
    characterset al32utf8
    badfile extlogs:'drugbank_partners_xml.bad'
    logfile extlogs:'drugbank_partners_xml.log'
    discardfile extlogs:'drugbank_partners_xml.dis'
    READSIZE 52428800
    fields
    drugbank_xml CHAR(50000000) terminated by '</partners>'
    LOCATION (DRUGBANK_DIR:'drugbank.xml')
    REJECT LIMIT UNLIMITED
    PARALLEL ( DEGREE 8 INSTANCES 1 )
    NOMONITORING;
    The problem is that before the first <partners> element the 1800 or so <drugs> elements cause a data cartrdige error:-
    ORA-29913: error in executing ODCIEXTTABLEFETCH callout
    ORA-29400: data cartridge error
    KUP-04020: found record longer than buffer size supported, 52428800
    This happens regardless of the value of the SKIP or the size of the drugbank_xml field.
    I have tried using an OR on the "records delimited by" access parameter, to 'delimit by "</partner>" OR "</drug>"', with the intention of filtering out the <drug> elements but this leads to a syntax error.
    Anyone ever tried anything similar and got it to work?
    Any other suggestions?
    Thanks,
    Sid.

    No, the content inside quotes is spanned across multiple lines....there are line breaks after every html tag.
    "What's the error message you are getting?"
    Iam not getting any error while selecting from external table , but I am getting tose rows in BAD file and log file has the following entries
    KUP-04021: field formatting error for field TKBS_DSCN
    KUP-04036: second enclosing delimiter not found
    Message was edited by:
    user627610

Maybe you are looking for

  • Multiple Template in BIP

    Hi What is the use of multiple template in BIP Report. Can we print multiple template at a time. If no, then why they have given this facility of multiple template. Mash

  • Brand new ideapad u300s going into depot for 2nd time in in less than a month

    Hi, I can't seem to get any help on the phone, all I get told is send the unit in.  I ask to speak to a supervisor and you tell me they will call back in 24-48 hours; it's been a week.  I call back and ask to speak to a supervisor and you tell me it'

  • Itunes is not recognizing iphone 5 or i pod

    ive unintalled itunes re installed ive removed all apple drives and reinstalled everything and nothing is working. it is 2 iphone 5 and i pod on windows vista

  • J2me http connection error

    Hi, I got null value from my hand set when getting conn.getHeaderField value while my J2ME emulator is working fine. Any one hv a clue on tis.. My snipet of code HttpConnection conn = (HttpConnection)Connector.open("http://61.6.108.195:8001/Frens/tes

  • Sync prob of updatin info from WDM to smb.conf using smb protocol

    Hi, I would appreciate if somebody could help me as i'm trying hard to solve my server's problem but could not find any solutions. My Mac OSX Server is running as a Dual 2.3GHZ PowerPC G5 and the current version is 10.4.11. When i tried to create a n