ORA-29913: error in executing ODCIEXTTABLEFETCH legend

Hello

I get an error when you run queries against a view.
SQL > select count (*) in the TOOL_ADMIN. DATABASE_STATS;.

ERROR on line 1:
ORA-29913: error in executing ODCIEXTTABLEFETCH legend
ORA-30653: reject limit reached
ORA-06512: at "SYS." ORACLE_LOADER', line 52

SQL > select MASTER, object_name, object_type, status, CREATED from object where object_name like UPPER ('Database_Stats');

OWNER OBJECT_NAME OBJECT_TYPE STATUS CREATED
------------------------------ ------------------------------ ------------------- ------- ---------
TOOL_ADMIN DATABASE_STATS VIEW VALID MARCH 9, 10


Could you please share your experiences on this subject?

Kind regards
VN

Based on the view of the error messages. TOOL_ADMIN done DATABASE_STATS refers to an external table. This means that whenever you select in the view that oracle bed associated with external table file is loading based on the external table definition. And this time the number of records in the file not following the external table definition exceeds the limit of rejection of external table. Check the definition of the view. Determinte log, bad and throw the files and examine them to see records or reasons were rejected.

SY.

Tags: Database

Similar Questions

  • ORA-29913: error in executing ODCIEXTTABLEOPEN legend

    Hi Experts,

    Please help correct the above error, I mentioned all the steps that I did.

    Version of DB - 11.2.0.1

    Version of the OS - OEL6 (64-bit)

    SQL > show parameter utl_file

    VALUE OF TYPE NAME

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

    UTL_FILE_DIR chain

    SQL > alter system set utl_file_dir = ' / u01/feeder ' scope = spfile;

    Modified system.

    SQL > startup strength;

    ORACLE instance started.

    Total System Global Area 634679296 bytes

    Bytes of size 2216024 fixed

    507514792 variable size bytes

    121634816 of database buffers bytes

    Redo buffers 3313664 bytes

    Mounted database.

    Open database.

    SQL > exit

    SQL > create statement of directory as ' / u01/feeder;

    Created directory.

    SQL >! Cat depts.txt

    01, accounting

    02, IT

    03, Admin

    04, marketing

    SQL > create table depts (deptno number (2), varchar2 (16)) deptname

    (external) Organization

    type oracle_loader

    default directory charger

    access settings

    (records delimited by newline

    BadFile "depts.bad."

    discardfile 'depts.dsc '.

    logfile "depts.log".

    fields termintated by ':'

    missing field values are null)

    location ('depts.txt'));

    Table created

    SQL > select * from departments;

    Select * from departments

    *

    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 'identifier': expected an a: "column,

    Clos, ignore_chars_after_eor (ltrim, lrtrim, ldrtrim, lack, notrim,

    "eventually, rtrim, reject, finished.

    KUP-01008: the identifier of the AfDB was: termintated

    KUP-01007: line 5, column 8

    fields termintated by «,»

    Read my first response: he was "terminated" not "termintated.

  • ORA-29913: error in executing ODCITABLEDESCRIBE legend

    Hello
    Database is 11.2.0.3 Solaris SPARC with R 2.13.2 and ORE installed.
    When you run the latest example of page 39: http://www.oracle.com/technetwork/database/options/advanced-analytics/r-enterprise/ore-trng4-embeddedrscripts-1501638.pdf

    Select *.
    table (rqTableEval)
    cursor (select ARRDELAY, DISTANCE, DEPDELAY
    of ontime_s
    where year = 2003
    and month = 5
    dayofmonth = 2) and
    cursor (select 1 max1, 1 pos1, Name1 'mod',)
    TO_NUMBER (null) max2, to_number (null) pos2,
    TO_CHAR (null) name2, total, piece, value
    of ontime_lm).
    "select ARRDELAY, DISTANCE, DEPDELAY, 1 PRED ontime_s."
    'R_TEST_Example3'))
    order by 1, 2, 3;
    Select *.
    *
    ERROR on line 1:
    ORA-29913: error in executing ODCITABLEDESCRIBE legend

    What could be a problem?

    Kind regards

    There is a bug in the ore 1.1 on Solaris. We could reproduce the problem locally on a SPARC box. On a positive side, we have a solution for this in point 1.3 of the ORE. We have released ORE 1.3 on Linux and will soon publish two versions of Solaris.

  • ORA-29913: error in executing ODCIEXTTABLEPOPULATE legend while expdp

    Hi all
    My bottom, expdp command fails with the error below:

    With the options of partitioning and Data Mining
    Start "TKSDBO53". "' EXPDP_AR1_TAX_ITEM ': TKSDBO53/***@INTKS10G tables = AR1_TAX_ITEM DUMPFILE=DUMP:Expdp_AR1_TAX_ITEM_%U.dmp LOGFILE = LOG:Expdp_AR1_TAX_ITEM.log CONTENT = DATA_ONLY FILESIZE = 5 G EXCLUDE = INDEX, STATISTICS, CONSTRAINTS, GRANT PARALLEL = JOB_NAME 5 = Expdp_AR1_TAX_ITEM
    Current estimation using BLOCKS method...
    Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
    Total estimation using BLOCKS method: 19,80 MB
    ORA-31693: Data Table object 'TKSDBO53 '. "' AR1_TAX_ITEM ': 'AMAXVALUE_BMAXVALUE' failed to load/unload and being ignored because of the error:
    ORA-29913: error in executing ODCIEXTTABLEPOPULATE legend
    ORA-00001: unique constraint (TKSDBO53. SYS_C00612451) violated
    ORA-06512: at "SYS." "KUPF$ FILE ', line 2580
    ORA-06512: at line 1
    . . exported "TKSDBO53." "' AR1_TAX_ITEM ': 'AMAXVALUE_BMAXVALUE' 324 lines 0 KB
    Table main "TKSDBO53." "' EXPDP_AR1_TAX_ITEM ' properly load/unloaded

    The command I use is
    expdp TKSDBO53/TKSDBO53@INTKS10G tables = AR1_TAX_ITEM DUMPFILE=DUMP:Expdp_AR1_TAX_ITEM_%U.dmp LOGFILE = LOG:Expdp_AR1_TAX_ITEM.log CONTENT = DATA_ONLY FILESIZE = 5 G PARALLEL = JOB_NAME 5 = Expdp_AR1_TAX_ITEM2


    > uname
    Linux

    SQL > select * from v version $;

    BANNER
    ----------------------------------------------------------------
    Oracle Database 10 g Enterprise Edition release 10.2.0.3.0 - 64bi
    PL/SQL version 10.2.0.3.0 - Production
    CORE Production 10.2.0.3.0
    AMT for Linux: release 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production

    Please suggest what should I do?

    Regds,
    Malika

    Hmm... Interesting though!

    I think that not some problems that cannot be solved by forum / distance helps. This is one of them. Probably in support of the Oracle if the place where you can solve the problem that why this db rests with ora-29913 while others are not. still the same table structure. If you Gets the support of oracle response, then please post it here (only if it does not violate EULA).

    Or, please wait for the response by other members of the forum.

    Concerning
    Girish Sharma

  • Error ORA-29913, in the execution of legend ODCIEXTTABLEFETCH ORA-01114

    Hi all

    I have a problem when importing a job. Please check the newspapers below:

    . . imported "QADTA." "" F5842017 "GB 5,091 20655848 lines

    . . imported "QADTA." "' F5858002 ' 6,008 GB 27703475 lines

    . . imported "QADTA." "" F5541017 "GB 38,64 209026748 lines

    ORA-31693: Data Table object 'QADTA '. "' F0911 ' failed to load/unload and being ignored because of the error:

    ORA-01114: block write IO file error (block #)

    ORA-29913: error in executing ODCIEXTTABLEFETCH legend

    ORA-01114: IO error to the file 210 (block # 775358) writing block

    ORA-27072: IO file error

    Additional information: 4

    Additional information: 775358

    Additional information: 139264

    ORA-31693: Data Table object 'QADTA '. "' F42199 ' failed to load/unload and being ignored because of the error:

    ORA-01114: block write IO file error (block #)

    ORA-29913: error in executing ODCIEXTTABLEFETCH legend

    ORA-01114: IO error to the file 210 (block # 757597) writing block

    ORA-27072: IO file error

    Additional information: 4

    Additional information: 757597

    Additional information:-1

    Please help me why these got job failed. What is this error?

    Database version:

    SQL > select * from v version $;

    BANNER

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

    Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production

    PL/SQL Release 11.2.0.3.0 - Production

    CORE Production 11.2.0.3.0

    AMT for HP - UX: 11.2.0.3.0 - Production Version

    NLSRTL Version 11.2.0.3.0 - Production

    Kind regards

    Michel

    You can check the consistency of the data files, use DBV/DBVERIFY. It seems to me that your DBF file or dump file may be damaged.

    Onkar

  • 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?

  • ORA-17628: error Oracle 19505 returned by remote Oracle - Dup Active Server

    Hi all

    I'm doing a duplicate RMAN of a 11.2.0.4 database to another host on a different IP address.

    Goal

    SQL> select * from v$version;
    
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    

    Auxiliary (nomount)

    SQL> select * from v$version;
    
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    
    

    I've added an entry static listener to the file on the server to THE listener and start the instance in nomount.

    (SID_LIST =
       (SID_DESC =
          (GLOBAL_DBNAME = IST_11G)
          (ORACLE_HOME = /devdb3/u01b/app/oracle/product/11.2.0.4)
          (SID_NAME = IST_11G)
        )
    

    TNSNAMES on the server to THE:

    points to the TARGET server:

    IST_11G_192 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.48)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = IST_11G)(UR=A)))
    

    the server pointing to THE

    IST_11G = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.64.72)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = IST_11G)(UR=A)))
    

    TNSNAMES on the TARGET server:

    IST_11G_NEW = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.21.64.72)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = IST_11G)(UR=A)))
    

    instance pFile to THE:

    Using parameters in Server pfile /devdb3/u01b/app/oracle/product/11.2.0.4/dbs/initIST_11G.ora-side

    Parameters of the system with default values:

    db_name = "IST_11G".

    I have sftp file password above and named correctly.

    Check the connections

    --from target
    $ sqlplus sys/xxx@IST_11G_NEW as sysdba
    
    SQL*Plus: Release 11.2.0.4.0 Production on Tue Jun 30 08:32:10 2015
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
    SQL>
    

    Since in THE

    $ sqlplus sys/xxx@IST_11G_192 as sysdba

    SQL * more: Release 11.2.0.4.0 Production on Mar 30 08:32:32 June 2015

    Copyright (c) 1982, 2013, Oracle.  All rights reserved.

    Connected to:

    Oracle Database 11 g Enterprise Edition Release 11.2.0.4.0 - 64 bit Production

    With partitioning, OLAP, Data Mining and Real Application Testing options

    SQL >

    So I checked that I have two means of connection, my at THE start and I can connect.

    Here's my RMAN command (Note: the TARGET servers and have the same host name, don't ask...) "This is why we use the IP address in the TNSNAMES):

    connection:

    rman target sys/xxx@IST_11G_192 auxiliary sys/xxx@IST_11G | tee /home/oracle/IST_11G_duplicate.log
    

    run
    {
      duplicate target database to IST_11G from active database
      NOFILENAMECHECK
      spfile
      set DB_FILE_NAME_CONVERT = '/devdb3/u01/oradata/IST_11G','/devdb3/u02d/oradata/IST_11G','/devdb3/u02/oradata/IST_11G','/devdb3/u02d/oradata/IST_11G'
      set LOG_FILE_NAME_CONVERT = '/devdb3/u01/oradata/IST_11G/','/devdb3/u03r/IST_11G_DEVDB3/'
      set control_files = '/devdb3/u03r/IST_11G_DEVDB3/controlfile/IST_11G_ctl1.ctl', '/devdb3/u04r/IST_11G_DEVDB3/controlfile/IST_11G_ctl2.ctl'
      set audit_file_dest = '/devdb3/u01b/app/oracle/product/11.2.0.4/rdbms/audit/'
      set diagnostic_dest = '/devdb3/u01b/app/oracle/'
      set log_archive_dest =  '/devdb3/u05f/fast_recovery/IST_11G/archivelogs/'
      set MEMORY_MAX_TARGET='1G'
      set MEMORY_TARGET='1G';
    }
    

    $ rman target sys/xxx@IST_11G_192 auxiliary sys/xxx@IST_11G | tee /home/oracle/IST_11G_duplicate.log
    
    Recovery Manager: Release 11.2.0.4.0 - Production on Tue Jun 30 08:37:02 2015
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    
    connected to target database: IST_11G (DBID=525645852)
    connected to auxiliary database: IST_11G (not mounted)
    
    RMAN> run
    2> {
    3>   duplicate target database to IST_11G from active database
      NOFILENAMECHECK
      spfile
    4> 5> 6>   set DB_FILE_NAME_CONVERT = '/devdb3/u01/oradata/IST_11G','/devdb3/u02d/oradata/IST_11G','/devdb3/u02/oradata/IST_11G','/devdb3/u02d/oradata/IST_11G'
      set LOG_FILE_NAME_CONVERT = '/devdb3/u01/oradata/IST_11G/','/devdb3/u03r/IST_11G_DEVDB3/'
      set control_files = '/devdb3/u03r/IST_11G_DEVDB3/controlfile/IST_11G_ctl1.ctl', '/devdb3/u04r/IST_11G_DEVDB3/controlfile/IST_11G_ctl2.ctl'
    7>   set audit_file_dest = '/devdb3/u01b/app/oracle/product/11.2.0.4/rdbms/audit/'
    8>   set diagnostic_dest = '/devdb3/u01b/app/oracle/'
      set log_archive_dest =  '/devdb3/u05f/fast_recovery/IST_11G/archivelogs/'
    9>   set MEMORY_MAX_TARGET='1G'
      set MEMORY_TARGET='1G';
    10> }
    11>
    12>
    
    Starting Duplicate Db at Jun 30 2015 08:37:10
    using target database control file instead of recovery catalog
    allocated channel: ORA_AUX_DISK_1
    channel ORA_AUX_DISK_1: SID=216 device type=DISK
    
    contents of Memory Script:
    {
       backup as copy reuse
       targetfile  '/devdb3/oracle/app/oracle/product/11.2.0.4/dbs/spfileIST_11G.ora' auxiliary format
    '/devdb3/u01b/app/oracle/product/11.2.0.4/dbs/spfileIST_11G.ora'   ;
       sql clone "alter system set spfile= ''/devdb3/u01b/app/oracle/product/11.2.0.4/dbs/spfileIST_11G.ora''";
    }
    executing Memory Script
    
    Starting backup at Jun 30 2015 08:37:11
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=365 device type=DISK
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of Duplicate Db command at 06/30/2015 08:37:12
    RMAN-05501: aborting duplication of target database
    RMAN-03015: error occurred in stored script Memory Script
    RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/30/2015 08:37:12
    ORA-17628: Oracle error 19505 returned by remote Oracle server
    
    RMAN>
    
    
    
    
    
    
    
    
    
    

    I can't understand why I'm getting ORA-17628: error Oracle 19505 returned by remote Oracle server.

    So, I try one of the commands connecting memory se scripts to check if was not a problem with my execution block.

    backup copy reuse targetfile ' / devdb3/oracle/app/oracle/product/11.2.0.4/dbs/spfileIST_11G.ora' auxiliary format ' / devdb3/u01b/app/oracle/product/11.2.0.4/dbs/spfileIST_11G.ora';

    $ rman target sys/sys_IST_11G@IST_11G_192 auxiliary sys/sys_IST_11G@IST_11G | tee /home/oracle/IST_11G_duplicate.log
    
    Recovery Manager: Release 11.2.0.4.0 - Production on Tue Jun 30 08:41:00 2015
    
    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
    
    connected to target database: IST_11G (DBID=525645852)
    connected to auxiliary database: IST_11G (not mounted)
    
    RMAN> backup as copy reuse targetfile  '/devdb3/oracle/app/oracle/product/11.2.0.4/dbs/spfileIST_11G.ora' auxiliary format '/devdb3/u01b/app/oracle/product/11.2.0.4/dbs/spfileIST_11G.ora';
    
    Starting backup at Jun 30 2015 08:41:15
    using target database control file instead of recovery catalog
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=365 device type=DISK
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/30/2015 08:41:17
    ORA-17628: Oracle error 19505 returned by remote Oracle server
    
    RMAN>
    
    
    
    
    
    
    
    

    Same mistake.  Nothing is written for the journal of alerts.  IM starting to pull the hair is left on my head out and people start screaming for this database.  I could go back to datapump but I want to understand this.  Any help would be very much appreciated.

    Thank you.

    Yes, although this:

    connected to target database: IST_11G (DBID = 525645852)

    connected to the auxiliary database: IST_11G (unassembled)

    can say you that RMAN you connected the two separate databases, the process, instances should do research each other using tnsnames file entries.  Thus, incorrect tnsnames entries can have one instance pointing to itself.

    Hemant K Collette

  • InPlace schema evolution error: ORA-31166: error code internal etc...

    Hello

    I have a table in which I will be storing an XMLTYPE column based on an XML schema. I use the following version of the database:
    SQL*Plus: Release 11.2.0.1.0 Production on Thu Aug 23 18:20:12 2012
    
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Now, when I run my test InPlace Schema Evolution, I get the following error message:

    < font color = "red" >
    ORA-31166: internal error code to handle ignorable attributes
    < / make >

    I built a re-producable case of test for the purpose of this post on the forum. For starters, I have a database scheme grants the following privileges:
    DIRECTLY GRANTED SYSTEM PRIVS
    =============================
    CREATE TRIGGER
    ALTER SESSION
    CREATE TABLE
    
    EXECUTE PRIVS (SYS-OWNED PACKAGES)
    =============
    EXECUTE ON DBMS_XMLSCHEMA
    
    ROLES GRANTED
    =============
    CONNECT
    DATA_ROLE
    
    DATA_ROLE DDL
    =============
    create role DATA_ROLE not identified;
    grant create database link to DATA_ROLE;
    GRANT CREATE MATERIALIZED VIEW TO DATA_ROLE;
    grant create procedure to DATA_ROLE;
    grant create sequence to DATA_ROLE;
    GRANT CREATE SYNONYM TO DATA_ROLE;
    grant create table to DATA_ROLE with admin option;
    grant create trigger to DATA_ROLE;
    grant create view to DATA_ROLE;
    grant select any dictionary to DATA_ROLE;
    All other scripts are run as the database schema. For the purposes of clarity, let's call the {*} TEST_DB_SCHEMA {*}. I follow the steps below in this scheme:

    H3. 1. run this PL/SQL script to record the Version 1 of my XML schema:
    PROMPT -------------------------------;
    PROMPT INITIAL XML SCHEMA REGISTRATION;
    PROMPT -------------------------------;
    
    SET SERVEROUTPUT ON
    SET FEEDBACK OFF
    
    DECLARE
       l_xsd_url_con CONSTANT VARCHAR2(60) := 'http://home/xsd/test_binXML_v1.xsd';
       
       l_xml_schema VARCHAR2(32767);
       
       E_XSD_ALREADY_REGISTERED EXCEPTION;
       PRAGMA EXCEPTION_INIT(E_XSD_ALREADY_REGISTERED, -31085);
    BEGIN
       l_xml_schema :=
          '<xs:schema'||CHR(10)||
          'xmlns:xs="http://www.w3.org/2001/XMLSchema"'||CHR(10)||
          'xmlns:xdb="http://xmlns.oracle.com/xdb"'||CHR(10)||
          'version="1.0"'||CHR(10)||
          'xdb:storeVarrayAsTable = "true">'||CHR(10)||
          ' <xs:element name="TransactionBatch" type="TransactionBatchType" xdb:defaultTable="XSD_TEST_BATCH_BINXML1"/>'||CHR(10)||
          ' <xs:complexType name="TransactionBatchType">'||CHR(10)||
          '  <xs:sequence>'||CHR(10)||
          '   <xs:element name="Transaction" type="TransactionType" minOccurs="1" maxOccurs="unbounded" xdb:defaultTable="XSD_TEST_TRANSACTION_BINXML1"/>'||CHR(10)||
          '  </xs:sequence>'||CHR(10)||
          ' </xs:complexType>'||CHR(10)||
          ' <xs:complexType name="TransactionType">'||CHR(10)||
          '  <xs:sequence>'||CHR(10)||
          '   <xs:element name="Portal" type="PortalType" minOccurs="1" maxOccurs="1" />'||CHR(10)||
          '   <xs:element name="CustomerId" type="CustomerIdType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '   <xs:element name="TransactionQuantity" type="TransactionQuantityType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '   <xs:element name="AppTransactionId" type="AppTransactionIdType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '   <xs:element name="TransactionDetails" type="TransactionDetailType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '   <xs:element name="Username" type="UsernameType" minOccurs="1" maxOccurs="1" />'||CHR(10)||
          '  </xs:sequence>'||CHR(10)||
          ' </xs:complexType>'||CHR(10)||
          ' <xs:simpleType name="PortalType">'||CHR(10)||
          '  <xs:restriction base="xs:string">'||CHR(10)||
          '   <xs:minLength value="1"/>'||CHR(10)||
          '   <xs:maxLength value="30"/>'||CHR(10)||
          '   <xs:enumeration value="TEST1"/>'||CHR(10)||
          '   <xs:enumeration value="TEST2"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="CustomerIdType">'||CHR(10)||
          '  <xs:restriction base="xs:string"/>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="TransactionQuantityType">'||CHR(10)||
          '  <xs:restriction base="xs:integer">'||CHR(10)||
          '   <xs:minExclusive value="0"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="AppTransactionIdType">'||CHR(10)||
          '  <xs:restriction base="xs:string">'||CHR(10)||
          '   <xs:minLength value="1"/>'||CHR(10)||
          '   <xs:maxLength value="20"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="TransactionDetailType">'||CHR(10)||
          '  <xs:restriction base="xs:string">'||CHR(10)||
          '   <xs:minLength value="1"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          ' <xs:simpleType name="UsernameType">'||CHR(10)||
          '  <xs:restriction base="xs:string">'||CHR(10)||
          '   <xs:minLength value="1"/>'||CHR(10)||
          '   <xs:maxLength value="30"/>'||CHR(10)||
          '  </xs:restriction>'||CHR(10)||
          ' </xs:simpleType>'||CHR(10)||
          '</xs:schema>';
       
       DBMS_XMLSCHEMA.REGISTERSCHEMA(
          schemaurl       => l_xsd_url_con,
          schemadoc       => l_xml_schema,
          local           => TRUE,                             -- XSD must only be visible to the Owner DB Schema in which this script is run.
          genTypes        => FALSE,                            -- Don't want to generate object types, as we're using Binary XML.
          force           => FALSE,                            -- Raise all errors on creation
          owner           => USER,                             -- XML Schema will belong to the currently executing user.
          options         => DBMS_XMLSCHEMA.REGISTER_BINARYXML -- We wish to register the XSD as Binary XML.
       );
       
    EXCEPTION
       WHEN E_XSD_ALREADY_REGISTERED
       THEN
          DBMS_OUTPUT.PUT_LINE('XML Schema '||l_xsd_url_con||' is already registered.');
          
    END;
    /
    
    SET FEEDBACK ON
    H3. 2. create a bunch of Table with an XMLTYPE column based on version 1 of my XML schema:
    PROMPT ----------------------;
    PROMPT ONE-OFF DDL STATEMENTS;
    PROMPT ----------------------;
    
    DROP TABLE test_batch;
    DROP SEQUENCE seq_test_batch_id;
    
    CREATE TABLE test_batch
    (
       batch_id        NUMBER(20),
       batch_timestamp TIMESTAMP   DEFAULT SYSTIMESTAMP,
       batch_xml       XMLTYPE,
       CONSTRAINT tbh_batch_id_nn        CHECK(batch_id IS NOT NULL),
       CONSTRAINT tbh_batch_timestamp_nn CHECK(batch_timestamp IS NOT NULL),
       CONSTRAINT tbh_batch_xml_nn       CHECK(batch_xml IS NOT NULL)
    )
    XMLTYPE COLUMN batch_xml STORE AS SECUREFILE BINARY XML
    XMLSCHEMA "http://home/xsd/test_binXML_v1.xsd"
    ELEMENT "TransactionBatch"
    PARTITION BY RANGE(batch_timestamp)
    INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
    (
       PARTITION P_TEST_BATCH_201208 VALUES LESS THAN (TO_DATE('01-SEP-2012', 'DD-MON-YYYY')) TABLESPACE &&TABLSPACE_OF_YOUR_CHOICE
    );
    
    CREATE UNIQUE INDEX idx_tbh_batch_id ON test_batch(batch_id)
    TABLESPACE TXTREME_IDX_XLG;
    
    ALTER TABLE test_batch
       ADD CONSTRAINT tbh_batch_id_pk PRIMARY KEY (batch_id) USING INDEX idx_tbh_batch_id;
    
    CREATE SEQUENCE seq_test_batch_id
    START WITH 1
    INCREMENT BY 1
    MAXVALUE 99999999999999999999
    CYCLE
    NOCACHE
    NOORDER;
    H3. 3. fill this table with the test data.
    PROMPT --------------------------;
    PROMPT CREATING INITIAL TEST DATA;
    PROMPT --------------------------;
    
    TRUNCATE TABLE TEST_BATCH;
    
    SET TIMING ON
    DECLARE
       l_batch_count_con CONSTANT NUMBER(4) := 200;
       
       l_transaction_count   PLS_INTEGER;
       l_total_transactions  PLS_INTEGER DEFAULT 0;
       l_transaction_xmlclob CLOB;
       l_transaction_xmldoc  XMLTYPE;
    BEGIN
       FOR idx IN 1..l_batch_count_con
       LOOP
          l_transaction_count := TRUNC(DBMS_RANDOM.VALUE(1,100));
          
          -- Initialise XML CLOB String. 
          l_transaction_xmlclob := '<?xml version="1.0"?>'||CHR(10)||'<TransactionBatch>';
          
          -- Insert the contents of the XML CLOB String.
          FOR idx IN 1 .. l_transaction_count
          LOOP
             l_transaction_xmlclob := l_transaction_xmlclob||CHR(10)||
                                      '  <Transaction>'||CHR(10)||
                                      '    <Portal>TEST1</Portal>'||CHR(10)||
                                      '    <CustomerId>1234567891</CustomerId>'||CHR(10)||
                                      '    <TransactionQuantity>4</TransactionQuantity>'||CHR(10)||
                                      '    <AppTransactionId>1232K89C</AppTransactionId>'||CHR(10)||
                                      '    <TransactionDetails>This is another long free text field</TransactionDetails>'||
                                      '    <Username>Jimbo2</Username>'||CHR(10)||
                                      '  </Transaction>';
          END LOOP;
          
          --Terminate XML CLOB String.
          l_transaction_xmlclob := l_transaction_xmlclob||CHR(10)||'</TransactionBatch>';
          
          -- Create XMLTYPE XML Document.
          l_transaction_xmldoc := XMLTYPE.createXML(l_transaction_xmlclob);
          
          -- Populate the TEST_BATCH Table.
          INSERT INTO test_batch
            ( batch_id,
              batch_timestamp,
              batch_xml
            )
          VALUES
            ( SEQ_TEST_BATCH_ID.NEXTVAL,
              SYSTIMESTAMP,
              l_transaction_xmldoc
            );
            
          l_total_transactions := l_total_transactions + l_transaction_count;
       END LOOP;
       
       DBMS_OUTPUT.PUT_LINE('Inserted a total of '||l_total_transactions||' transaction XML pieces across '||l_batch_count_con||' Test Batches.');
       COMMIT;
       DBMS_OUTPUT.PUT_LINE('Commit complete.');
    END;
    /
    
    SET TIMING OFF
    H3. 4. save the Version 2 of my XML schema
    PROMPT -----------------------------------------------------------------------------------;
    PROMPT NEW XML SCHEMA REGISTRATION - IDENTICAL TO OLD SCHEMA EXCEPT FOR NEW <Test> ELEMENT;
    PROMPT -----------------------------------------------------------------------------------;
    
    SET FEEDBACK OFF
    
    DECLARE
       l_xsd_url_con CONSTANT VARCHAR2(60) := 'http://home/xsd/test_binXML_v2.xsd';
       
       l_xml_schema VARCHAR2(32767);
       
       E_XSD_ALREADY_REGISTERED EXCEPTION;
       PRAGMA EXCEPTION_INIT(E_XSD_ALREADY_REGISTERED, -31085);
    BEGIN
       l_xml_schema :=
          '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" version="1.0" xdb:storeVarrayAsTable="true">'||CHR(10)||
          '<xs:element name="TransactionBatch" type="TransactionBatchType" xdb:defaultTable="XSD_TEST_BATCH_BINXML2"/>'||CHR(10)||
          '<xs:complexType name="TransactionBatchType">'||CHR(10)||
          ' <xs:sequence>'||CHR(10)||
          '  <xs:element name="Transaction" type="TransactionType" minOccurs="1" maxOccurs="unbounded" xdb:defaultTable="XSD_TEST_TRANSACTION_BINXML2"/>'||CHR(10)||
          ' </xs:sequence>'||CHR(10)||
          '</xs:complexType>'||CHR(10)||
          '<xs:complexType name="TransactionType">'||CHR(10)||
          ' <xs:sequence>'||CHR(10)||
          '  <xs:element name="Portal" type="PortalType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="CustomerId" type="CustomerIdType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="TransactionQuantity" type="TransactionQuantityType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="AppTransactionId" type="AppTransactionIdType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="TransactionDetails" type="TransactionDetailType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="Username" type="UsernameType" minOccurs="1" maxOccurs="1"/>'||CHR(10)||
          '  <xs:element name="Test" type="TestType" minOccurs="0" maxOccurs="1"/>'||CHR(10)||
          ' </xs:sequence>'||CHR(10)||
          '</xs:complexType>'||CHR(10)||
          '<xs:simpleType name="PortalType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          '  <xs:maxLength value="30"/>'||CHR(10)||
          '  <xs:enumeration value="TEST1"/>'||CHR(10)||
          '  <xs:enumeration value="TEST2"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="CustomerIdType">'||CHR(10)||
          ' <xs:restriction base="xs:string"/>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="TransactionQuantityType">'||CHR(10)||
          ' <xs:restriction base="xs:integer">'||CHR(10)||
          '  <xs:minExclusive value="0"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="AppTransactionIdType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          '  <xs:maxLength value="20"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="TransactionDetailType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="UsernameType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          '  <xs:maxLength value="30"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '<xs:simpleType name="TestType">'||CHR(10)||
          ' <xs:restriction base="xs:string">'||CHR(10)||
          '  <xs:minLength value="1"/>'||CHR(10)||
          '  <xs:maxLength value="30"/>'||CHR(10)||
          ' </xs:restriction>'||CHR(10)||
          '</xs:simpleType>'||CHR(10)||
          '</xs:schema>';
       
       DBMS_XMLSCHEMA.REGISTERSCHEMA(
          schemaurl       => l_xsd_url_con,
          schemadoc       => l_xml_schema,
          local           => TRUE,                             -- XSD must only be visible to the Owner DB Schema in which this script is run.
          genTypes        => FALSE,                            -- Don't want to generate object types, as we're using Binary XML.
          force           => FALSE,                            -- Raise all errors on creation
          owner           => USER,                             -- XML Schema will belong to the currently executing user.
          options         => DBMS_XMLSCHEMA.REGISTER_BINARYXML -- We wish to register the XSD as Binary XML.
       );
       
    EXCEPTION
       WHEN E_XSD_ALREADY_REGISTERED
       THEN
          DBMS_OUTPUT.PUT_LINE('XML Schema '||l_xsd_url_con||' is already registered.');
          
    END;
    /
    
    SET FEEDBACK ON
    H3. 5 test to insert a new XML document in line with the second XML schema. This test fails as expected.
    PROMPT ---------------------------------------------------------------;
    PROMPT ATTEMPT TO INSERT V2 XSD-COMPLIANT XMLDOC INTO TEST_BATCH TABLE;
    PROMPT ---------------------------------------------------------------;
    
    DECLARE
       l_transaction_xmldoc XMLTYPE;
       
       E_XSD_VALIDATION_FAILURE EXCEPTION;
       PRAGMA EXCEPTION_INIT(E_XSD_VALIDATION_FAILURE, -31061);
    BEGIN
       l_transaction_xmldoc := XMLTYPE.createXML(
                                  '<?xml version="1.0" encoding="UTF-8"?>'||CHR(10)||
                                  '<TransactionBatch>'||CHR(10)||
                                  '  <Transaction>'||CHR(10)||
                                  '    <Portal>CARMAN</Portal>'||CHR(10)||
                                  '    <CustomerId>1234567891</CustomerId>'||CHR(10)||
                                  '    <TransactionQuantity>4</TransactionQuantity>'||CHR(10)||
                                  '    <AppTransactionId>1232K89C</AppTransactionId>'||CHR(10)||
                                  '    <TransactionDetails>This is a long free text field</TransactionDetails>'||CHR(10)||
                                  '    <Username>Jimbo2</Username>'||CHR(10)||
                                  '    <Test>This is an In-Place Schema Evolution Test</Test>'||CHR(10)||
                                  '  </Transaction>'||CHR(10)||
                                  '</TransactionBatch>'
                               );
       
       -- Attempt to populate the SUBMISSION_BATCH Table.
       INSERT INTO submission_batch
         ( batch_id,
           batch_timestamp,
           batch_xml
         )
       VALUES
         ( SEQ_SUB_BATCH_ID.NEXTVAL,
           SYSTIMESTAMP,
           l_transaction_xmldoc
         );
       
       DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT||' row inserted.');
       COMMIT;
       DBMS_OUTPUT.PUT_LINE('Commit complete.');
    
    EXCEPTION
       WHEN E_XSD_VALIDATION_FAILURE
       THEN
          DBMS_OUTPUT.PUT_LINE('Insert failed as expected.'||CHR(10));
          DBMS_OUTPUT.PUT_LINE(SQLERRM);
    END;
    /
    H3. 6. try Inplace development of Version 1 of the XML schema in Version 2.
    PROMPT --------------------------------------------------------------------------------------;
    PROMPT PERFORM IN-PLACE EVOLUTION AND DE-REGISTER/PURGE OLD SCHEMA IF EVOLUTION IS SUCCESSFUL;
    PROMPT --------------------------------------------------------------------------------------;
    
    SET TIMING ON
    
    DECLARE
       l_current_schema   XMLTYPE;
       l_new_schema       XMLTYPE;
       l_xsd_differences  XMLTYPE;
       
       l_resource         BOOLEAN;
    BEGIN
       SELECT schema
         INTO l_current_schema
         FROM user_xml_schemas
        WHERE schema_url = 'http://home/xsd/test_binXML_v1.xsd';
       
       SELECT schema
         INTO l_new_schema
         FROM user_xml_schemas
        WHERE schema_url = 'http://home/xsd/test_binXML_v2.xsd';
       
       SELECT XMLDIFF(l_current_schema, l_new_schema)
         INTO l_xsd_differences
         FROM dual;
       
       DBMS_OUTPUT.PUT_LINE('Successfully extrapolated XDIFF XML Document.');
       
       DBMS_XMLSCHEMA.inPlaceEvolve( 'http://home/xsd/test_binXML_v1.xsd',
                                     l_xsd_differences,
                                     DBMS_XMLSCHEMA.INPLACE_TRACE
                                   );
       
       DBMS_OUTPUT.PUT_LINE('Successfully evolved original XML Schema.');
       
    EXCEPTION
       WHEN OTHERS
       THEN
          ROLLBACK;
          DBMS_OUTPUT.PUT_LINE('Error issued during InPlace XML Schema Evolution:');
          DBMS_OUTPUT.PUT_LINE(SQLERRM);
    END;
    /
    H3. The scripts above provide the following Test output:
    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 
    Connected as TEST_DB_SCHEMA@dbs02local
     
    SQL> 
    -------------------------------
    INITIAL XML SCHEMA REGISTRATION
    -------------------------------
     
    XML Schema http://home/xsd/test_binXML_v1.xsd is already registered.
     
    Executed in 0 seconds
    
    ----------------------
    ONE-OFF DDL STATEMENTS
    ----------------------
      
    Table created
     
    Executed in 0.016 seconds
     
    Index created
     
    Executed in 0.016 seconds
     
    Table altered
     
    Executed in 0 seconds
     
    Sequence created
     
    Executed in 0 seconds
    
    --------------------------
    CREATING INITIAL TEST DATA
    --------------------------
     
    Table truncated
     
    Executed in 0.032 seconds
    
    Inserted a total of 10259 transaction XML pieces across 200 Test Batches.
    Commit complete.
     
    PL/SQL procedure successfully completed
     
    Executed in 8.487 seconds
    
    -----------------------------------------------------------------------------------
    NEW XML SCHEMA REGISTRATION - IDENTICAL TO OLD SCHEMA EXCEPT FOR NEW <Test> ELEMENT
    -----------------------------------------------------------------------------------
     
    XML Schema http://home/xsd/test_binXML_v2.xsd is already registered.
    
    ---------------------------------------------------------------
    ATTEMPT TO INSERT V2 XSD-COMPLIANT XMLDOC INTO TEST_BATCH TABLE
    ---------------------------------------------------------------
     
    Insert failed as expected.
    
    ORA-31061: XDB error: XML event error
    ORA-19202: Error occurred in XML processing
    LSX-00213: only 0 occurrences of particle "Transaction", minimum is 1
     
    PL/SQL procedure successfully completed
     
    --------------------------------------------------------------------------------------
    PERFORM IN-PLACE EVOLUTION AND DE-REGISTER/PURGE OLD SCHEMA IF EVOLUTION IS SUCCESSFUL
    --------------------------------------------------------------------------------------
     
    Successfully extrapolated XDIFF XML Document.
    Error issued during InPlace XML Schema Evolution:
    ORA-31166: internal error code to handle ignorable attributes
     
    PL/SQL procedure successfully completed
     
    Executed in 0.046 seconds
    SQL> 
    NOTE: When I ran the above tests, I had already created the test of XML schemas. That's why the output messages, say...

    H4. Now, as it is the first time I've ever tried evolution of XML schema in Oracle XMLDB, is there someone who could potentially open the door please, re. solve the < font color = "red" >ORA-31166< / police > error?

    Hello

    First of all, thank you for your efforts on the provision of a decent test case.

    However, there are a few inconsistencies:

    -Step 5 attempts to insert into SUBMISSION_BATCH, but the table created above is TEST_BATCH
    -Same for the sequence name

    Now back to the real question...

    I think the problem comes because you run XMLDiff against two versions saved of your drawings.
    When Oracle stores a schema, it adds a large number of attributes for internal use (you can see them by querying USER_XML_SCHEMAS. DIAGRAM) but we as end users don't have to worry about them.
    However, by building the Xdiff document based on these two 'internal' versions, we explicitly say Oracle whose internal attributes must be changed during the evolution of the scheme, leading to potential conflicts.

    A few other comments:
    -Given that you're using the binary XML schema, you must also set "genTables-online false" and more "genTypes-online false."
    -Also delete all annotations from xdb:defaultTable and xdb:storeVarrayAsTable on the diagrams, they are of no use in this situation.
    -Do not save the schema of the v2, it is not necessary. Just use a transient instance when calling XMLDiff

    So, to summarize:

    -XMLDiff run against both original patterns (do not save a new in any case, the process of evolution will take care of replacing the old).
    -of course, don't forget to change the INPLACE_TRACE to INPLACE_EVOLVE when ready :)

    Hope that helps.

    Published by: odie_63 on August 23, 2012 16:31 - fixed some typos

  • ORA-00604: error occurred at recursive SQL when the proc via db_link

    Hello
    I'm on 9.2.0.8 and got a strange problem with simple test cases
    on source db:
    CREATE OR REPLACE PROCEDURE ADMIN.gg_ref(out_tokens OUT SYS_REFCURSOR) is
      BEGIN
      OPEN out_tokens for select dummy from dual;
    END ;
    /
    
    
    Now testing code localy:
    SQL> var r refcursor
    SQL> declare
      2   output sys_refcursor;
      3  begin
      4   adminx.gg_ref(output);
      5  :r:=output;
      6  end;
      7  /
    
    PL/SQL procedure successfully completed.
    
    SQL> print r
    
    D
    -
    X
    
    
    So its working.
    
    I've got db_link to that db , and now call that proc via dblink from other 9.2.0.8 DB:
    
    
    var r refcursor
      1  declare
      2   output sys_refcursor;
      3  begin
      4   admin.gg_ref@LINK_NAME(output);
      5  :r:=output;
      6* end;
    SQL> /
    declare
    *
    ERROR at line 1:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00900: invalid SQL statement
    What wrong with my code?
    Is there a any restriction that I'm not aware?
    Concerning
    GregG

    GregG says:

    What should my code looks like now?
    Should I rewrite this as function returns the index of collection or something?

    You can use DBMS_SQL - but use the remote package and not the local. It's a little more complex ito call interface you use a Ref Cursor, but is the same server-side. DBMS_SQL also provides a more comprehensive set of features to use the ref cursor interface.

    Most, however, is add code - DBMS_SQL is a lower level interface (much closer to the real Oracle Call Interface/OIC):

     --// on remote database the procedure returns a DBMS_SQL cursor instead of a ref cursor
    SQL> create or replace procedure FooProc( cur in out number, deptID number ) is
      2          rc      number;
      3  begin
      4          cur := DBMS_SQL.open_cursor;
      5
      6          DBMS_SQL.parse(
      7                  cur,
      8                  'select ename from emp where deptno = :deptID',
      9                  DBMS_SQL.native
     10          );
     11
     12          DBMS_SQL.Bind_Variable( cur, 'deptID', deptID );
     13
     14          rc := DBMS_SQL.Execute( cur );
     15  end;
     16  /
    
    Procedure created.
    
    --// from the local database side we call this remote proc
    SQL> declare
      2          c               number;  --// instead of using sys_refcursor
      3          empName         varchar2(10); --// buffer to fetch column into
      4  begin
      5          FooProc@testdb( c, 10 );  --/ call the proc that creates the cursor
      6
      7          --// we need to define our fetch buffer for the 1st column in the
      8          --// SQL projection of that cursor (10 byte fetch buffer for 1st column)
      9          DBMS_SQL.define_column@testdb( c, 1, empName, 10 );
     10
     11          --// we now fetch from this cursor, but via the DBMS_SQL
     12          --// interface
     13          loop
     14                  --// fetch the row (exit when 0 rows are fetched)
     15                  exit when DBMS_SQL.Fetch_Rows@testdb( c ) = 0;
     16
     17                  --// copy value of 1st column in row into the local PL/SQL buffer
     18                  DBMS_SQL.column_value@testdb( c, 1, empName );
     19
     20                  --// record value it via dbms output
     21                  DBMS_OUTPUT.put_line( 'name='||empName||' deptID=10' );
     22          end loop;
     23
     24          --// close it explicitly as you would a ref cursor
     25          DBMS_SQL.Close_Cursor@testdb( c );
     26  end;
     27  /
    name=CLARK deptID=10
    name=KING deptID=10
    name=MILLER deptID=10
    
    PL/SQL procedure successfully completed.
    
    SQL>
    
  • ORA-12012: error on auto work

    Hello
    in 10 gr 2 on Win 2003, I have the following in alertolog but not broken from work:
    ORA-12012: error on auto execute of job 3203
    ORA-12048: error encountered while refreshing materialized view "XDF"."SOME_TYPES"
    ORA-02068: following severe error from XDF
    ORA-03135: connection lost contact
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2254
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2460
    ORA-06512: at "SYS.DBMS_IREFRESH", line 683
    ORA-06512: at "SYS.DBMS_REFRESH", line 195
    Database has been/is running.

    S/n do any action?

    Thank you.

    user522961 wrote:
    Hello
    in 10 gr 2 on Win 2003, I have the following in alertolog but not broken from work:

    ORA-12012: error on auto execute of job 3203
    ORA-12048: error encountered while refreshing materialized view "XDF"."SOME_TYPES"
    ORA-02068: following severe error from XDF
    ORA-03135: connection lost contact
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2254
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2460
    ORA-06512: at "SYS.DBMS_IREFRESH", line 683
    ORA-06512: at "SYS.DBMS_REFRESH", line 195
    

    Database has been/is running.

    S/n do any action?

    Thank you.

    There may be times out connection occur. You get this error (in the alert.log). See more information in the alert.log and listener.log.Also check SQLNET. INBOUND_CONNECT_TIMEOUT_Listener parameter.

  • ORA-01565: error in identifying spfile / ORA-12547: TNS: lost contact

    Hello

    just installed 2 node rac rac 11.2, but the instance that b fails to climb!

    SQL > startup;
    ORA-01078: failure in the treatment of system settings
    ORA-01565: error in the identification of file "+ DATA/db/spfile/mydb.ora".
    ORA-17503: ksfdopn:2 could not open the file +DATA/db/spfile/mydb.ora
    ORA-12547: TNS: lost contact
    SQL >

    SPFile exists and the DSO is mounted and upward. same pfile/spfile works fine on the other instance

    Thank you

    In which group is the user to network?
    What group you chose in the group administrator of the ASM?
    Authorities who have your oracle executables (in the House of the grid and Oracle Home)?

    If you cloned Oracle Home, then it is very likely that the oracle Oracle executable Home is owned by oracle: oinstall, but it must be owned by oracle: asmadim (or prabably s/n) in your case.

    Use setasmgidwrap on the oracle executable in the House of the Oracle and this should solve your problem.
    (DBCA imlicitly calls it).

    Concerning
    Sebastian

  • ORA-04052: error occurred when searching to the top of the remote object REPADMIN. SYS@CEL2. W

    Hello
    on 10 gr 2 on WIN 2003 server:
    C:\>sqlplus repadmin/***@CEL2.WORLD
    
    SQL*Plus: Release 10.2.0.4.0 - Production on Tue Jun 22 09:54:18 2010
    
    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    And then:
    CONNECT repadmin/******@CEL1.WORLD
    
    BEGIN
       DBMS_REPCAT.ADD_MASTER_DATABASE (
          gname => 'REPG',
          master => 'CEL2.WORLD',
          use_existing_objects => TRUE,
          copy_rows => FALSE,
          propagation_mode => 'ASYNCHRONOUS');
    END;
    / 
    
    BEGIN
    *
    ERROR at line 1:
    ORA-04052: error occurred when looking up remote object [email protected]
    ORA-00604: error occurred at recursive SQL level 2
    ORA-12545: Connect failed because target host or object does not exist
    ORA-06512: at "SYS.DBMS_REPCAT_UTL", line 4271
    ORA-06512: at "SYS.DBMS_REPCAT_MAS", line 2156
    ORA-06512: at "SYS.DBMS_REPCAT", line 146
    ORA-06512: at line 2
    Thanks for the help.

    connect to the remote database as sys and

    SQL > grant execute on sys. DBMS_REPCAT repadmin;

  • setTriggerEvents &gt; ORA-20171: error WM: trigger &lt; NAME &gt; does not exist

    Hello

    Problem*: execution of DBMS_WM.setTriggerEvents results in a < trigger_name > error does not exist, even if the trigger actually exists.

    Environment*: Oracle 10 g R2 on Windows 2003. Internal programs of PL/SQL stored in packages in a schema; data tables compatible version in many other patterns. The DIRECT workspace is frozen, allowing that the operations of WM. Applications and users change data in the context of child workspaces.

    _ The goal: on a workspace of the merger in LIVE, fire a level trigger line AULIEUDE updates the data in another schema.table. For example, changes to data in Schema1 activate the trigger stored in Schema2, which in turn changes in schema3.

    It is believed that an AULIEUDE trigger is necessary due to complications OWM. Specifically, a trigger on the underlying table for the LT would fire outside the context of a review, which is problematic because triggered changes are made, even if the user ignores finally his work space. In addition, the operations are not easily discernible on the table LT for INSERTS, UPDATES and DELETES the extra lines result (i.e., INSERTS).

    Detail: *
    Organization: SchemaSW contains a trigger that calls a public procedure in a specific application package "Package1" The specific application package calls various public functions in another package in the same pattern. This last package encapsulates OWM sequences appeal and management to ensure that all internal applications regularly perform operations of OWM errors. The trigger is associated with SchemaV1.View. A MERGE_WORKSPACE_W/WO_REMOVE event, the trigger modifies data stored in SchemaV2.View.

    Permissions: the user SchemaSW has WM_ADMIN_ROLE, CONNECT, RESOURCE and DBA roles and privileges SELECT ANY TABLE system, update ANY TABLE and SYSDBA. The SchemaV1 user has EXECUTE on SchemaSW.

    Declaration of delinquency: EXECUTE DBMS_WM.setTriggerEvents ("< TRIG_NAME > ', dbms_wm.") WORKSPACE_MERGE_WO_REMOVE | «, » || dbms_wm. WORKSPACE_MERGE_W_REMOVE);

    Error:
    ERROR on line 1:
    ORA-20171: error WM: trigger ' < SchemaV1 >. < TRIG_NAME > ' does not exist
    ORA-06512: at "SYS." WM_ERROR', line 342
    ORA-06512: at "SYS." WM_ERROR', line 359
    ORA-06512: at "SYS.LT", line 13264
    ORA-06512: at line 1

    Documents*: Guide to the application developer - Workspace Manager (B14253-01, 10 g Release 2).

    [pg 4-133] «By default, user-defined triggers are executed for DML events both workspace, unless the default behavior is changed using the parameter system Workspace Manager FIRE_TRIGGERS_FOR_NONDML_EVENTS (described in Section 1.5).» You can use the SetTriggerEvents procedure to override the current setting of the FIRE_TRIGGERS_ FOR_NONDML_EVENTS of specific triggers; However, if you later change the value of the parameter system FIRE_TRIGGERS_FOR_NONDML_EVENTS, this new value replaces all specified parameter previously using the SetTriggerEvents procedure. If this procedure is successful, it validates the transaction open database calling fs. An exception is thrown if one or more of the following apply: hominess ' user is not the owner of the trigger, or does not have the role WM_ADMIN_ROLE. There is no such thing as ¡triggerName. Instead of more triggerEvents values are not valid. »

    [pg 1-23] "1.10 triggers on Version-Enabled tables compatible Version tables may have defined triggers; However, the following considerations and limitations apply: ¦ only by line triggers are supported. Statement triggers is not supported. ¦ Set single-line triggers are supported. Avant-mise day and update after the cessation of the triggers for specific columns are not supported. »

    Troubleshooting*: documentation requires the user trigger (otherwise the trigger owner) to have the WM_ADMIN_ROLE, which is satisfied in this case. I checked the existence of triggering via:

    SELECT the owner, table_owner, table_name, triggering_event, STATUS
    OF dba_triggers
    WHERE UPPER (TRIGGER_NAME) = UPPER ("< TRIG_NAME >" ");

    SchemaSW SchemaV1
    < VIEW >
    INSERT
    PEOPLE WITH DISABILITIES

    (Note that I have disabled the trigger for does not stop others from exercise data while I try to fix this).

    Any directive of the community is very much appreciated.

    Thanking you,
    Noel

    So you're creating instead of trigger directly on the view from above (the original name of the table)? Let me know if this isn't the case.

    OWM does not support INSTEAD of triggers. Instead of triggers need to be defined on a view and the only objects that can be activated version are tables. However, I see nothing in your description that says to an INSTEAD of triggers. What you try to do so should be able to finish the level triggers table row dml insert/update/delete. You would simple create triggers on the table before EnableVersioning or add them during a session of beginDDL/commitDDL, and they would be then implemented as PL/SQL procedures inside the inside instead of triggers that we create. They are not defined on the table _LT.

    After you create the trigger, you would be able to use dbms_wm.setTriggerEvents to specify the events you want relax to fire to.

    Kind regards
    Ben

  • ORA-00604: error occurred at recursive SQL level 1 ORA-01882: region time zone not found

    Dear all,

    IAM trying to connect to establish a connection to a database using JDBC thin oracle client. IAM getting the following error.

    Could someone help me with a solution please

    Operating system: Oracle linux

    Database Version: 12 c

    java.sql.SQLException: ORA-00604: error occurred at the SQL level 1 recursive

    ORA-01882: zone schedule region not found

    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:144)

    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:73)

    at com.sunopsis.sql.SnpsConnection.testConnection(SnpsConnection.java:1243)

    at com.sunopsis.graphical.dialog.SnpsDialogTestConnet.getLocalConnect(SnpsDialogTestConnet.java:173)

    to com.sunopsis.graphical.dialog.SnpsDialogTestConnet.access$ 400 (SnpsDialogTestConnet.java:51)

    to com.sunopsis.graphical.dialog.SnpsDialogTestConnet$ 5.doInBackground(SnpsDialogTestConnet.java:629)

    to com.sunopsis.graphical.dialog.SnpsDialogTestConnet$ 5.doInBackground(SnpsDialogTestConnet.java:625)

    at oracle.odi.ui.framework.AbsUIRunnableTask.run(AbsUIRunnableTask.java:258)

    at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:947)

    at java.lang.Thread.run(Thread.java:745)

    Caused by: java.sql.SQLException: ORA-00604: error occurred at the SQL level 1 recursive

    ORA-01882: zone schedule region not found

    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.doGetConnection(LoginTimeoutDatasourceAdapter.java:144)

    at oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter.getConnection(LoginTimeoutDatasourceAdapter.java:73)

    at oracle.odi.core.datasource.dwgobject.support.OnConnectOnDisconnectDataSourceAdapter.getConnection(OnConnectOnDisconnectDataSourceAdapter.java:87)

    to oracle.odi.jdbc.datasource.LoginTimeoutDatasourceAdapter$ ConnectionProcessor.run (LoginTimeoutDatasourceAdapter.java:228)

    to java.util.concurrent.Executors$ RunnableAdapter.call (Executors.java:471)

    at java.util.concurrent.FutureTask.run(FutureTask.java:262)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    to java.util.concurrent.ThreadPoolExecutor$ Worker.run (ThreadPoolExecutor.java:615)

    ... 1 more

    Caused by: java.sql.SQLException: ORA-00604: error occurred at the SQL level 1 recursive

    ORA-01882: zone schedule region not found

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:466)

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:391)

    at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1126)

    at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:503)

    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:546)

    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:269)

    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:436)

    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1021)

    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:682)

    at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:789)

    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)

    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:608)

    at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:412)

    at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:385)

    at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:352)

    at oracle.odi.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:331)

    ... 6 more


    Best regards


    Hi CPR1,.

    I tried to connect to database using ODI.

    What I did at work is

    Double-click the database server--->, click Properties, and then you have the key and the value

    In the Insert key as oracle.jdbc.timezoneAsRegion, and its value is FALSE

    Thank you

    Best regards

  • connection mysql and oracle ORA-28545: error diagnosed by Net8 when connecting to an agent

    Hi all

    I have Oracle 10.2.0.5 server and MySQL 5.3 on windows environment. all are 64-bit.

    I want to connect to MySQL. I do the following

    Configure Listner.ora

    SID_LIST_LISTENER =

    (SID_LIST =

    (SID_DESC =

    (SID_NAME = PLSExtProc)

    (ORACLE_HOME = C:\oracle\product\10.2.0\db_2)

    (= Extproc PROGRAM)

    )

    (SID_DESC =

    (GLOBAL_DBNAME = ORCL)

    (ORACLE_HOME = C:\oracle\product\10.2.0\db_2)

    (SID_NAME = ORCL)

    )

    (SID_DESC =

    (SID_NAME = mysql)

    (ORACLE_HOME = C:\oracle\product\10.2.0\db_2)

    (PROGRAM = HSODBC)

    (ENVS = LD_LIBRARY_PATH = C:\oracle\product\10.2.0\db_2\LIB)

    )

    )

    LISTENER =

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = oradev.hct.org) (PORT = 1521))

    )

    Tnsnames.ora configuration

    ORCL =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oradev.hct.org) (PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    )
    )

    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = CIP)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    )
    )
    MySQL =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST= 10.153.103.5) (PORT = 1521))
    (CONNECT_DATA =
    (SID = mysql)
    )
    (HS = OK)
    )

    create file initodbc.ora in the folder hs

    HS_FDS_CONNECT_INFO = mysql

    HS_FDS_TRACE_LEVEL = OFF

    Restart the listner

    tnsping

    C:\users\administrator > tnsping mysql

    AMT Ping Utility for 64-bit Windows: Version 10.2.0.5.0 - Production 08-NOV-2
    015 13:02:52

    Copyright (c) 1997, 2010, Oracle.  All rights reserved.

    Use settings files:
    C:\oracle\product\10.2.0\db_2\network\admin\sqlnet.ora


    TNSNAMES adapter used to resolve the alias
    Try to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 10.153.103.5)
    (PORT = 1521)) (CONNECT_DATA = (SID = mysql)) (HS=OK))
    OK (0 msec)

    Create the connection odbc for Unicode

    the test is successful

    now, I create the dblink

    create public mysql database link to connect to cssDBTeam identified by oracle using "mysql";

    then try to select from a table inside the MySQL database

    SQL > select * from appeal@mysql;

    Select * from appeal@mysql

    *

    ERROR on line 1:

    ORA-28545: error diagnosed by Net8 when connecting to an agent

    Cannot retrieve the text of the message NETWORK/NCR 65535

    ORA-02063: preceding 2 lines of MYSQL

    How could I solve this problem?

    Thank you.

    Hello

    I realize that your problem is that 10.2 HSODBC was never focused on the Windows 64-bit platform and was only available on 32-bit Windows.  You can not install the 32-bit on WIndows 64-bit HSODBC.

    Your only option is to install 11.2 DG4ODBC on your platform Windows 64 - bit, or if you have a RDBMS 10.2 installed on another platform, then you could use HSODBC as part of this installation and connect from the RDBMS on Windows 64 - bit using the links in the database.  HSODBC 10.2 software could not be installed as a stand-alone product and was only available as part of an RDBMS install.

    Kind regards

    Mike

Maybe you are looking for

  • MacBook Pro. 2 different readings of free memory

    My Macbook Pro.10.11.6/ 2012 is a bit slow. It shows also the 2 readings of different storage. Under Macintosh HD icon desktop reads 328,82 GB free. But in the section "about this mac" reads 271 GB free. Difference of 57 GB. It is a bit slow?

  • Unable to rate in music since 9.3 songs update apple

    9.3 pre, if you pressed the title of the song, see highlighted section in the picture, it gave you the song start rating, can't seem to do now

  • Intercept Windows event messages

    Is there an easy way of Windows event messages stop without having to write a dll to do? The command that I am looking for: WM_SYSCOMMAND I have a touch screen application and I am tring to prevent treatment of the events when he recovers from fashio

  • Problems to open files, folders and drives

    When I try to open a folder or a drive with the "Open" command, it shows at the top of the list "browse any folder with Corel Photo 13", I try to open.  If I dubbel click on a file or a folder, it opens right away with Corel photo 13.  I don't know h

  • problem of SDXC

    I have a 64 GB sdxc card that gives me problems. I can save the pictures in my camera, but when I insert it into my card reader I get the error message "the disk you inserted is not readable by this computer." The map came from Adorama, which is a go