Order child tables.

Hi all,
We've used a GTC to provision to five tables into a database. The connector works fine, but there is a little problem related to manual provision. The four child forms need to be filled in order (tha data into them depends on the previous form), but we can't order them. We've tried to remove them from the parent form and add again in order, but it didn't work. We've also tried to write them in the proper order while creating the GTC without succes.
Is there any way to order them?
Thanks.

Do you mean alphabetical order? If yes, it does not work, OIM doesn't order it in that way

Similar Messages

  • Master Child tables how to get the latest rows from both

    Hi,
    Need some help with the sql. I have two tables Master & Child. In my Master table I have multiple rows for the same record and in the child table also multiple rows for the same master row how can I get the latest one's from both.
    For example Data in my Master table looks like
    CONT_ID                  SEQ_NUM        DESCRIPTION
    1                         189             Update 2
    1                         188             Update 1
    1                         187              NewNow in the child table for the same CONT_ID I may have the following rows
    CONT_ID                   UPDATED_DATE                                     STATUS
    1                        3/16/2010 2:19:01.552700 PM                          P
    1                        3/16/2010 12:29:01.552700 PM                         A
    1                        3/16/2010 12:29:01.552700 PM                         P
    1                        3/16/2010 12:19:01.552700 PM                         NIn my final query how can I get the row with seq_num 189 as it's the latest in Master table and from child table the row with status of P as it's the latest one based on the time. Here is the query i have but it returns the latest row from the child table only and basically repeats the master table rows as opposed to one row that is latest from both:
    Thanks

    Hi,
    You can use the analytic ROW_NUMKBER function to find the latest row for each cont_id in each table:
    WITH     got_m_rnum     AS
         SELECT     cont_id,     seq_num,     description
         ,     ROW_NUMBER () OVER ( PARTITION BY  cont_id
                                   ORDER BY          seq_num     DESC
                           ) AS m_rnum
         FROM    master_table
    --     WHERE     ...     -- any filtering goes here
    ,     got_c_rnum     AS
         SELECT     cont_id, updated_date,     status
         ,     ROW_NUMBER () OVER ( PARTITION BY  cont_id
                                   ORDER BY          updated_date     DESC
                           ) AS c_rnum
         FROM    child_table
    --     WHERE     ...     -- any filtering goes here
    SELECT     m.cont_id,     m.seq_num,     m.description
    ,     c.updated_date,     c.status
    FROM     got_m_rnum     m
    JOIN     got_c_rnum     c     ON     m.cont_id     = c.cont_id
                        AND     m.m_rnum     = c.c_rnum
                        AND     m.m_rnum     = 1
    ;If you'd like to post CREATE TABLE and INSERT statements for the sample data, then I could test this.
    If there happens to be a tie for the latest row (say, there are only two rows in the child_table with a certain cont_id, and both have exactly the same updated_date), then this query will arbitrarily choose one of them as the latest.

  • Selecting Lists/Grids From a Child Table

    If I have a parent table "Patient" it has two product tables (Parent Table related 1 <--to--> Many Child Tables) and I make a screen for One Child Table so that it gives me a selection box for the parent table. I can already then
    show on the screen properties of the patient from the table I selected. Can I also bring up a List or Grid of the Other Child Table based on the patient I selected?

    I don't want to display something in the grid. I want to show all of the entries in that grid for a certain person. I want to grab the grid as a control showing all of the properties in a grid not showing them as individual labels or text etc....
    I am not on that entity I am on the orders entity it is already related to the customer to do that to get customer data. The Customer entity/table is related to the allergies entity which is related to Medications to pull up the names of drugs the customer
    is allergic too. I want to pull up the whole grid of allergies as a grid I solved this for now by making a single property on the patient table and grabbing all of the rows for a particular patient. then making them one field. I cannot however grab them as
    a table and have the advantage of the UI of the grid or list functions.

  • Perfomance Issue on Parent Child table SQL

    I am having table a and child table b contains data and message .
    both are linked with id column. how can i pick the latest message from b against id . how can we make fastest sql.
    I tried with subquries but it is taking time and working slow.
    When i checking the cost of the sql in plan it is showing more than which i am expecting
    Edited by: SA123 on Jun 22, 2009 3:22 PM

    Old Structure output
    PLAN_TABLE_OUTPUT                                   
    | 0 | SELECT STATEMENT | | 194 | 149K|                                   
    591 (7)| 00:00:08 |                                   
    | 1 | SORT ORDER BY | | 194 | 149K|                                   
    591 (7)| 00:00:08 |                                   
    |* 2 | HASH JOIN | | 194 | 149K|                                   
    590 (7)| 00:00:08 |                                   
    |* 3 | HASH JOIN RIGHT OUTER | | 192 | 142K|                                   
    504 (8)| 00:00:07 |                                   
    PLAN_TABLE_OUTPUT                                   
    | 4 | VIEW | | 5 | 2535 |                                   
    288 (4)| 00:00:04 |                                   
    |* 5 | FILTER | | | |                                   
    | |                                   
    | 6 | HASH GROUP BY | | 5 | 570 |                                   
    288 (4)| 00:00:04 |                                   
    |* 7 | HASH JOIN | | 32116 | 3575K|                                   
    PLAN_TABLE_OUTPUT                                   
    283 (2)| 00:00:04 |                                   
    | 8 | TABLE ACCESS FULL | b | 31837 | 373K|                                   
    141 (2)| 00:00:02 |                                   
    | 9 | TABLE ACCESS FULL | b | 31837 | 3171K|                                   
    141 (2)| 00:00:02 |                                   
    | 10 | NESTED LOOPS | | 192 | 48768 |                                   
    216 (13)| 00:00:03 |          
    New Structure
    PLAN_TABLE_OUTPUT
    | 0 | SELECT STATEMENT | | 196 | 152K|
    | 1108 (4)| 00:00:14 |
    | 1 | SORT ORDER BY | | 196 | 152K|
    | 1108 (4)| 00:00:14 |
    |* 2 | HASH JOIN | | 196 | 152K|
    | 1107 (4)| 00:00:14 |
    |* 3 | HASH JOIN | | 193 | 145K|
    | 1021 (4)| 00:00:13 |
    PLAN_TABLE_OUTPUT
    | 4 | NESTED LOOPS | | 192 | 48192 |
    | 216 (13)| 00:00:03 |
    |* 5 | HASH JOIN | | 3832 | 419K|
    | 206 (11)| 00:00:03 |

  • Accessibility: Reading order of tables and anchored frames

    I am creating accessible, tagged (section 508 compliant) PDFs in FrameMaker 9. The reading order for tables and frames is not correct.
    When I view the PDF reading order using Adobe Acrobat Professional or another screen reader, anchored items such as tables and anchored frames are  placed last in the reading order, regardless of where they appear in the document flow or page layout. The reading order skips over all tables and frames, reading all paragraphs on a page first, then reading the tables and frames as the last objects on the page. This logically doesn't make sense to skip over tables/frames as they generally apply to the content that preceeds it.
    For example, the following document structure:
    <Paragraph 1>
    <Table 1>
    <Paragraph 2>
    <Anchored Frame 1>
    <Paragraph 3>
    <Anchor Frame 2>
    <Paragraph 4>
    is being read by assistive technology as:
    <Paragraph 1>
    <Paragraph 2>
    <Paragraph 3>
    <Paragraph 4>
    <Table 1>
    <Anchored Frame 1>
    <Anchor Frame 2>
    I want the document structure to be read correctly as intended.
    In otherwords, the PDFs generated by FrameMaker 9 are not completely accessible because of incorrect reading order output by default. This information is not listed in the VPAT for FrameMaker 9.
    I want to avoid any post processing using Acrobat's Touch Up Reading Order tool. Is there a way to automate updates to reading order?
    Can FrameMaker 9 logically place tables and anchored frames into the correct reading order? How do I adjust these settings?
    Thanks in advance!

    As mentioned above, tables and anchored frames are inserted into thier own paragraph style "Frame". The paragraph style "Frame" is tagged. To my knowledge, there are no options for tagging or not tagging tables or anchored frames.
    Regardless of which paragraph type the table or anchor frame is inserted into, and what that paragraphs tagging settings are, it is still last in the reading order.
    I've tried a variety of options: tagging the "Frame" paragraph style as a sibling, child, and parent of my other paragraphs; I've even tried omitting it from the reading order. None of these options present anchored frames (and tables) in the logical reading order.
    Even images that are inline (within a paragraph; not in thier own paragraph) are not being read as part of the paragraph.  Inline images get skipped over by screen readers and get read at the end of the page, which makes no sense whatsoever.
    All tables and images end up at the end of the reading order (after ALL paragraphs) regardless of the tagging settings.
    Refer to my previous screenshot for a clear diagram of what is happening to the reading order. Each of those anchors is in it's own paragraph style. I want tables and anchored frames to be sequential in the reading order along with paragraphs. (1,2,3,4,5,6 not 1,4,2,5,3,6.)
    I'm using the Tags tab of the "PDF Setup" dialog to adjust these settings. Is there somewhere else I should be making changes to the reading order?
    This is a bit disturbing because FrameMaker touts creating accessible documents and this severe reading order issue impares my ability to do so. I would not consider documents that jump around the page in an illlogical, fixed order, to be accessible. I'm very suprised that no one else has encountered this issue (at least that I can find...)

  • Loading to Parent -Child Tables simultaneously

    I have a requirement to populate parent-child tables in a single interface simultaneoulsy. I couldnt find anyway to add multiple targets and am wondering why this key feature is absent in ODI. The same thing is easily achievable in BPEL.
    Could some one please advice a work around for this.
    Your help is much appreaciated

    ODI 11g does come with a new IKM 'IKM Oracle Multi Table Insert'. This does allow multi table inserts, but will require more than one interface.
    Oracle Multi-Table Inserts
    A new Integration KM for Oracle allows populating several target tables from a single source, reading the data only once. It uses the INSERT ALL statement.
    COMPONENT NAME: IKM Oracle Multi Table Insert
    COMPONENT VERSION: 11.1.2.4
    AUTHOR: Oracle
    COMPATIBILITY: ODI 11.1.1.3 and above
    DESCRIPTION:
         - Integrates data from one source into one to many Oracle target tables in append mode, using a multi-table insert statement (MTI).
    REQUIREMENTS:
         - Oracle Database 9iR1 or above
         - See BASIC CONFIGURATION section
    BASIC CONFIGURATION
         - This IKM must be used in integration interfaces that are sequenced in a Package:
              - The first interface of the Package must have a temporary target and the KM option DEFINE_QUERY set to YES.
              This first interface defines the structure of the SELECT clause of the multi-table insert statement (that is the source flow).
              - Subsequent integration interfaces must source from this temporary datastore and have the KM option IS_TARGET_TABLE set to YES.
              - The last interface of the Package must have the KM option EXECUTE set to YES in order to run the multi-table insert statement.
              - Do not set "Use Temporary Interface as Derived Table(Sub-Select)" set to true on any of the interfaces.
         - If large amounts of data are appended, consider to set the KM option OPTIMIZER_HINT to /*+ APPEND */.
    OPTIONS (Refer to the Option descriptions for more information on each option)
         - DEFINE_QUERY: Set to Yes if this interface describes the source query (SELECT clause of the statement). This interface must have a temporary target.
         - IS_TARGET_TABLE: Set to Yes this interface using the source query to load one of the target tables. This interface must source from an interface with a temporary target using this IKM and having the KM option DEFINE_QUERY set to YES.
         - EXECUTE: Set to Yes for the last interface in the Package. This interface will run the multi-table insert statement.
         - COMMIT: Commit transaction. This applies only to the last interface in the Package.
         - TRUNCATE: Set to Yes to truncate this interface target table.
         - CREATE_TARG_TABLE: Create target table? May only be used on target interfaces, but not on source interfaces (defining the source data).
         - OPTIMIZER_HINT: Hint for the multi-table insert statement.
    RESTRICTIONS:
         - This KM can only be used in integration interfaces that are part of a Package.
         - All source and target datastores need to reside on same data server.
         - Journalized source data is not supported.
         - Temporary indexes are not supported.
         - Flow/static control is not supported.
         - The TRUNCATE option cannot work, if the target table is referenced by another table (foreign key).

  • How to create index on XMLTYPE ordered collection table?

    I am using Oracle 11.2.0.2.
    Essentially, my XML documents have a 3-level hierarchy:
    event
      +---action  [1:n]
             +---- param   [1:n]
    I am trying to create indexes on ordered collection tables, but can not get the syntax right...
    I have created a table with an object-relational XMLType column:
    CREATE TABLE T_C_RMP_MNTRNG_XML_FULL_IL4 (
      MESSAGE_ID NUMBER(22,0) NOT NULL ENABLE,
      XML_EVAL_ID NUMBER(22,0),
      VIN7 VARCHAR2(7 BYTE),
      FLEET_ID VARCHAR2(50 BYTE),
      CSC_SW_VERSION VARCHAR2(100 BYTE),
      RECEIVED DATE,
      XML_CONTENT SYS.XMLTYPE ,
      DWH_LM_TS_UTC DATE NOT NULL ENABLE,
      CONSTRAINT PK_C_RMP_MNTRNG_XML_FULL_IL4 PRIMARY KEY (MESSAGE_ID)
    ) NOLOGGING TABLESPACE CATALOG
    VARRAY "XML_CONTENT"."XMLDATA"."action" STORE AS TABLE "T_OR_MON_ACTION" (
      NOLOGGING TABLESPACE "CATALOG"
      VARRAY "param" STORE AS TABLE "T_OR_MON_ACTION_PARAM" (
      NOLOGGING TABLESPACE "CATALOG"
      ) RETURN AS LOCATOR
    ) RETURN AS LOCATOR
    XMLTYPE XML_CONTENT STORE AS OBJECT RELATIONAL XMLSCHEMA "http://mydomain.com/cs.xsd" ELEMENT "monitoring";
    I am running the following SELECT:
    SELECT EVENT_ID, ACTION_SUB_ID, MESSAGE_ID, ACTION_TYPE, UNIXTS_TO_DATE(ACTION_TIMESTAMP) ACTION_TIMESTAMP
    FROM T_C_RMP_MNTRNG_XML_FULL_IL4,
    XMLTABLE(
      'for $i1 in /monitoring ,
      $i2 in $i1/action           
      return element r {             
      $i1/eventId,             
      $i2           
      PASSING XML_CONTENT COLUMNS
      EVENT_ID VARCHAR(40) PATH 'eventId',
      ACTION_SUB_ID INTEGER PATH 'action/actionSubId',
      ACTION_TYPE VARCHAR2(100) PATH 'action/type',
      ACTION_TIMESTAMP NUMBER(13,0) PATH 'action/time'
    ) T2
    WHERE (
      EVENT_ID IS NOT NULL AND ACTION_SUB_ID IS NOT NULL
    The explain plan looks like this (sorry, don't know how to get this formatted any "eye-friendlier"):
    | Id  | Operation          | Name                        | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |                             |  1609K|  6316M|       |  6110K  (1)| 20:22:11 |
    |*  1 |  HASH JOIN         |                             |  1609K|  6316M|   111M|  6110K  (1)| 20:22:11 |
    |   2 |   TABLE ACCESS FULL| T_C_RMP_MNTRNG_XML_FULL_IL4 |   582K|   104M|       |  5241   (1)| 00:01:03 |
    |*  3 |   TABLE ACCESS FULL| T_OR_MON_ACTION             |    32M|   117G|       |   105K  (2)| 00:21:08 |
    Predicate Information (identified by operation id):
       1 - access("NESTED_TABLE_ID"="T_C_RMP_MNTRNG_XML_FULL_IL4"."SYS_NC0001300014$")
           filter(CAST(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(SYS_XQEXTRACT(XMLCONCAT(SYS_XMLGEN("T_C_RMP_MNTRN
                  G_XML_FULL_IL4"."SYS_NC00017$",NULL,SYS_XMLCONV("T_C_RMP_MNTRNG_XML_FULL_IL4"."SYS_NC00012$",0,32,
                  'EC1EEF23FD023A27E04032A06D930A8D',3,3783,1)),SYS_MAKEXML('EC1EEF23FD023A27E04032A06D930A8D',3780,
                  "T_C_RMP_MNTRNG_XML_FULL_IL4"."SYS_NC00008$","SYS_ALIAS_0"."SYS_NC_ROWINFO$")),'/eventId',NULL),0,
                  0,20971520,0),50,1,2) AS VARCHAR(40) ) IS NOT NULL)
       3 - filter(CAST(TO_NUMBER(TO_CHAR("SYS_ALIAS_0"."actionSubId")) AS INTEGER ) IS NOT NULL)
    Note
       - dynamic sampling used for this statement (level=2)
       - Unoptimized XML construct detected (enable XMLOptimizationCheck for more information)
    The XML schema looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:oraxdb="http://xmlns.oracle.com/xdb" oraxdb:storeVarrayAsTable="true" oraxdb:flags="2105639" oraxdb:schemaURL="http://mydomain.com/cs.xsd" oraxdb:schemaOwner="MYUSER" oraxdb:numProps="23">
      <xs:element name="monitoring" oraxdb:propNumber="3785" oraxdb:global="true" oraxdb:SQLName="monitoring" oraxdb:SQLType="monitoring755_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:defaultTable="monitoring757_TAB" oraxdb:defaultTableSchema="MYUSER">
        <xs:complexType oraxdb:SQLType="monitoring755_T" oraxdb:SQLSchema="MYUSER">
          <xs:sequence>
            <xs:element maxOccurs="unbounded" ref="action" oraxdb:propNumber="3780" oraxdb:global="false" oraxdb:SQLName="action" oraxdb:SQLType="action752_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false" oraxdb:SQLCollType="action756_COLL" oraxdb:SQLCollSchema="MYUSER"/>
            <xs:element ref="reservationType" oraxdb:propNumber="3781" oraxdb:global="false" oraxdb:SQLName="reservationType" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="softwareVersion" oraxdb:propNumber="3782" oraxdb:global="false" oraxdb:SQLName="softwareVersion" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="eventId" oraxdb:propNumber="3783" oraxdb:global="false" oraxdb:SQLName="eventId" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="vin" oraxdb:propNumber="3784" oraxdb:global="false" oraxdb:SQLName="vin" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="action" oraxdb:propNumber="3790" oraxdb:global="true" oraxdb:SQLName="action" oraxdb:SQLType="action752_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:defaultTable="action754_TAB" oraxdb:defaultTableSchema="MYUSER">
        <xs:complexType oraxdb:SQLType="action752_T" oraxdb:SQLSchema="MYUSER">
          <xs:sequence>
            <xs:element ref="type" oraxdb:propNumber="3786" oraxdb:global="false" oraxdb:SQLName="type" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element maxOccurs="unbounded" ref="param" oraxdb:propNumber="3787" oraxdb:global="false" oraxdb:SQLName="param" oraxdb:SQLType="param749_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false" oraxdb:SQLCollType="param753_COLL" oraxdb:SQLCollSchema="MYUSER"/>
            <xs:element ref="actionSubId" oraxdb:propNumber="3788" oraxdb:global="false" oraxdb:SQLName="actionSubId" oraxdb:SQLType="NUMBER" oraxdb:memType="2" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="time" oraxdb:propNumber="3789" oraxdb:global="false" oraxdb:SQLName="time" oraxdb:SQLType="NUMBER" oraxdb:memType="2" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="type" type="xs:string" oraxdb:propNumber="3791" oraxdb:global="true" oraxdb:SQLName="type" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="type751_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="param" oraxdb:propNumber="3794" oraxdb:global="true" oraxdb:SQLName="param" oraxdb:SQLType="param749_T" oraxdb:SQLSchema="MYUSER" oraxdb:memType="258" oraxdb:defaultTable="param750_TAB" oraxdb:defaultTableSchema="MYUSER">
        <xs:complexType oraxdb:SQLType="param749_T" oraxdb:SQLSchema="MYUSER">
          <xs:sequence>
            <xs:element minOccurs="0" ref="value" oraxdb:propNumber="3792" oraxdb:global="false" oraxdb:SQLName="value" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
            <xs:element ref="key" oraxdb:propNumber="3793" oraxdb:global="false" oraxdb:SQLName="key" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:MemInline="false" oraxdb:SQLInline="true" oraxdb:JavaInline="false"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="value" type="xs:string" oraxdb:propNumber="3795" oraxdb:global="true" oraxdb:SQLName="value" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="value748_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="key" type="xs:string" oraxdb:propNumber="3796" oraxdb:global="true" oraxdb:SQLName="key" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="key747_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="actionSubId" type="xs:integer" oraxdb:propNumber="3797" oraxdb:global="true" oraxdb:SQLName="actionSubId" oraxdb:SQLType="NUMBER" oraxdb:memType="2" oraxdb:defaultTable="actionSubId746_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="time" type="xs:integer" oraxdb:propNumber="3798" oraxdb:global="true" oraxdb:SQLName="time" oraxdb:SQLType="NUMBER" oraxdb:memType="2" oraxdb:defaultTable="time745_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="reservationType" type="xs:string" oraxdb:propNumber="3799" oraxdb:global="true" oraxdb:SQLName="reservationType" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="reservationType744_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="softwareVersion" type="xs:string" oraxdb:propNumber="3800" oraxdb:global="true" oraxdb:SQLName="softwareVersion" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="softwareVersion743_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="eventId" type="xs:string" oraxdb:propNumber="3801" oraxdb:global="true" oraxdb:SQLName="eventId" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="eventId742_TAB" oraxdb:defaultTableSchema="MYUSER"/>
      <xs:element name="vin" type="xs:string" oraxdb:propNumber="3802" oraxdb:global="true" oraxdb:SQLName="vin" oraxdb:SQLType="VARCHAR2" oraxdb:memType="1" oraxdb:defaultTable="vin741_TAB" oraxdb:defaultTableSchema="MYUSER"/>
    </xs:schema>
    How can I create an index on these ordered collection tables in order to improve performance?
    I found the example at http://docs.oracle.com/cd/E11882_01/appdev.112/e23094/xdb_rewrite.htm#ADXDB5859 but am not able to apply it to this particular case...
    Thank you in advance...

    If the schema is not annotated then xs:integer and xs:string are mapped to NUMBER and VARCHAR2(4000) datatypes, so you have to use those in your query in order to avoid unnecessary typecasting operations.
    You should also use chained XMLTABLEs when accessing a parent/child relationship instead of a FLWOR expression, otherwise the CBO may not rewrite the XQuery correctly (maybe it's fixed in the latest release).
    If you make those changes, the plan should show cleaner predicates :
    SQL> SELECT EVENT_ID, ACTION_SUB_ID, MESSAGE_ID, ACTION_TYPE, ACTION_TIMESTAMP
      2  FROM test_table,
      3  XMLTABLE('/monitoring'
      4    PASSING XML_CONTENT COLUMNS
      5      EVENT_ID         VARCHAR2(4000) PATH 'eventId',
      6      actions          XMLTYPE        PATH 'action'
      7    ) T1,
      8  XMLTABLE('/action'
      9    PASSING actions COLUMNS
    10      ACTION_SUB_ID    NUMBER PATH 'actionSubId',
    11      ACTION_TYPE      VARCHAR2(4000) PATH 'type',
    12      ACTION_TIMESTAMP NUMBER PATH 'time'
    13  ) T2
    14  WHERE EVENT_ID IS NOT NULL
    15  AND ACTION_SUB_ID IS NOT NULL
    16  ;
    Execution Plan
    Plan hash value: 1763884463
    | Id  | Operation                    | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT             |                 |   109 |   220K|     6  (17)| 00:00:01 |
    |   1 |  MERGE JOIN                  |                 |   109 |   220K|     6  (17)| 00:00:01 |
    |*  2 |   TABLE ACCESS BY INDEX ROWID| TEST_TABLE      |    11 |   352 |     2   (0)| 00:00:01 |
    |   3 |    INDEX FULL SCAN           | SYS_C007567     |    11 |       |     1   (0)| 00:00:01 |
    |*  4 |   SORT JOIN                  |                 |   109 |   216K|     4  (25)| 00:00:01 |
    |*  5 |    TABLE ACCESS FULL         | T_OR_MON_ACTION |   109 |   216K|     3   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - filter("TEST_TABLE"."SYS_NC00012$" IS NOT NULL)
       4 - access("SYS_ALIAS_0"."NESTED_TABLE_ID"="TEST_TABLE"."SYS_NC0000800009$")
           filter("SYS_ALIAS_0"."NESTED_TABLE_ID"="TEST_TABLE"."SYS_NC0000800009$")
       5 - filter("SYS_ALIAS_0"."actionSubId" IS NOT NULL)
    Note
       - dynamic sampling used for this statement (level=2)
    Now, if still necessary, it all boils down to choosing a technique to index NULL values :
    - composite index with a not null or constant column
    - FBI
    - bitmap
    Pick one that best fits your data, selectivity and activity on the tables.

  • XML Query filtering by child table column

    Hello,
    If anyone can help with this one... it would be nice. I need to make the output of an query to be in the format of XML, but the problem is that the initial filtering needs to be done in the child table.
    Example:
    CREATE TABLE PRIMARY(
    ID NUMBER(19,0),
    CODE_PRIMARY VARCHAR2(32));
    CREATE TABLE SECONDARY(
    ID NUMBER(19,0),
    IDPRIMARY(19,0),
    CODE_SECONDARY VARCHAR2(32));
    INSERT INTO PRIMARY(ID,CODE_PRIMARY)
    VALUES (1,'A');
    INSERT INTO PRIMARY(ID,CODE_PRIMARY)
    VALUES (2,'B');
    INSERT INTO SECONDARY(ID,IDPRIMARY,CODE_SECONDARY)
    VALUES (1,1,'C');
    INSERT INTO SECONDARY(ID,IDPRIMARY,CODE_SECONDARY)
    VALUES (2,1,'D');
    INSERT INTO SECONDARY(ID,IDPRIMARY,CODE_SECONDARY)
    VALUES (3,2,'E');
    Now what we need is to build an XML tree like the following, INNER JOINING PRIMARY and SECONDARY tables with this condition in the where clause -> WHERE SECONDARY.CODE IN ('C','D')
    <result>
    <record>
    <id>1</id>
    <code>A</code>
    <childs>
    <child>
    <id>1</id>
    <idprimary>1</idprimary>
    <codesecondary>C</codesecondary>
    </child>
    <child>
    <id>2</id>
    <idprimary>1</idprimary>
    <codesecondary>D</codesecondary>
    </child>
    </childs>
    </record>
    </result>
    In this example only one record is returned since we only have one record in PRIMARY table that has a child having codesecondary=C or D. The ideia is to get many records... but I think that this is enough for the sake of the example. And the solution is the same.
    Thanks in advance!
    GM

    Found the answer. Used distinct keyword instead of grouping the output table columns. This way XMLAgg didn't broke up the result:
    SELECT
    XMLElement("Processos",
    XmlAgg(XMLElement("Processo",
    XMLForest(T.ID as "Id",T.CODIGO as "Codigo",T.DESCRICAO as "Descricao"),
    XMLElement("Funcionalidades",
    SELECT
    XMLAgg(
    XMLElement("Funcionalidade",F2.ID)
    FROM TWBASEDB.LISTA_UNICA_FUNCIONALIDADE F2
    WHERE F2.ID_processo=T.ID
    and f2.ACTIVIDADE IN ('1_ACTC1','1_ACTC2','1_ACTC3','2_ACTC1')
    from
    select distinct P.ID,P.CODIGO,p.DESCRICAO
    FROM TWBASEDB.LISTA_UNICA_PROCESSOS P
    INNER JOIN TWBASEDB.LISTA_UNICA_FUNCIONALIDADE F ON P.ID=F.ID_PROCESSO
    WHERE ACTIVIDADE IN ('1_ACTC1','1_ACTC2','1_ACTC3','2_ACTC1')
    order by p.id
    ) T

  • How to find out master tables and concern child tables

    Hi,
    my schema contains 219 tables. I got this result by using query "selct count(*) from user_tables".
    Now i need to know about master tables and concern child tables from these 219 tables.
    please guide me.
    Thanks and Regards,
    Venkat

    What about this one!!!
    select a.owner,a.table_name,a.column_name,
         '------------------>' as POINTS_TO,b.owner,b.table_name,b.column_name
    from dba_constraints c
         join dba_cons_columns a on ( c.constraint_name = a.constraint_name and c.owner = a.owner)
         join dba_cons_columns b on ( c.r_constraint_name = b.constraint_name and c.r_owner = b.owner)
    where  (a.table_name = '&table' and (a.owner='&owner'))  -- foreign key
    --     and (b.table_name = '&table' and (b.owner='&owner') )  -- source key
         and ( c.constraint_type='R' )
    order by a.table_namecomment and uncomment one between theese two lines to choose the direction.
         (a.table_name = '&table' and (a.owner='&owner'))  -- foreign key
    --     and (b.table_name = '&table' and (b.owner='&owner') )  -- source keyBye Alessandro
    Edited by: Alessandro Rossi on 22-ott-2008 10.40

  • Why is the child table inserting first in a composite association?

    Guys and Gals,
    Studio Edition Version 11.1.1.3.0.
    This one has gotten me all day. I have a child table which is inserting before its master table, even though the relationship is defined as a composite relationship.
    Process:
    1) User adds a part with a purchase price into the Part table.
    2) Via Part-PartHistories View Link, part is inserted into PartHistories.
    3) Via BPL-BPLRows View Link, part is inserted into BPLRows along with its purchase price. The part number is part of a composite primary key (BPL,PartNumber) and is a foreign key to the Part table.
    4) Via BPL-PL View Link, and then Via PL-PLRows View Link, part is inserted into PLRows along with its purchase price. The part number is part of a composite primary key (PL,PartNumber) and is a foreign key to the Part table.
    It is #4 which gives me an integrity constraint (PCS.PRICE_BUCKETS_PARTS_FK1) violated - parent key not found error. JDev is trying to insert in the order 4,1,2,3 when it should be 1,2,3,4. The kicker is that there is a composite association between #1 and #4 which should guarantee that 1 is inserted first. If I remove #4's process, steps 1-3 run fine. If I remove the composite association, JDev inserts correctly steps 1,2,3,4.
    Why is JDev trying to insert #4 first? I do a CreateInsert on the Parts table first so the creation order is correct. Furthermore, there is a composite association defined between Parts - PLRows.
    Something is indeed fishy in Denmark.

    LovettWB,
    You talk about VOs, but composite relationships need to be defined at the EO level. If you have indeed defined the proper composite associations, this sounds like a perfect test case to submit to Oracle Support to evaluate.
    If you do have the proper associations set up and things don't work, you could try [url http://download.oracle.com/docs/cd/E17904_01/web.1111/b31974/bcadveo.htm#CEGECADE]this technique as a workaround.
    John

  • Finding foreign keys of a child table,grandchild and all dependendents

    Hi All,
    I just came up with this sceanrio
    I have to delete a record in a parent table with a condition provided will have to find all the child tables depends on it and should recursively find all the dependents of the child table.
    How to achieve this.Please help with a query or guide.Thanks in advance

    Thanks visakh it gave me an idea and this script helped me
    DECLARE @mytable VARCHAR(30) SET @mytable = 'test'
    DECLARE @RecordID VARCHAR(8)
    SET @RecordID = '00000001'
    DECLARE @Order INT SET @Order = 0
    DECLARE @Count INT
    declare @tblname varchar(100),@query NVARCHAR(max)
    if OBJECT_ID('tempdb..#OrderList','U') is not null
    DROP TABLE #OrderList
    CREATE TABLE #TEMP
    OrderNo INT,
    TableName VARCHAR(50)
    CREATE TABLE #OrderList
    RecordNo INT,
    OrderNo INT,
    TableName VARCHAR(50)
    INSERT INTO #TEMP
    VALUES ( @Order,
    @mytable )
    WHILE ( EXISTS(SELECT TableName
    FROM #TEMP
    WHERE OrderNo = @Order) )
    BEGIN
    SET @Order= @Order + 1;
    INSERT INTO #TEMP
    SELECT @Order,
    t1.TABLE_NAME AS PointsFrom
    FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r
    JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t1
    ON t1.CONSTRAINT_NAME = r.CONSTRAINT_NAME
    JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t2
    ON t2.CONSTRAINT_NAME = r.UNIQUE_CONSTRAINT_NAME
    WHERE t2.table_name IN (SELECT TableName
    FROM #TEMP
    WHERE OrderNo = ( @Order - 1 ))
    END
    INSERT INTO #OrderList
    SELECT Row_number() OVER (ORDER BY OrderNo, TableName),
    #TEMP.OrderNo,
    #TEMP.TableName
    FROM #TEMP
    DROP TABLE #TEMP
    --SELECT * FROM #OrderList
    SET @Count = (SELECT Max(RecordNo)
    FROM #OrderList)
    WHILE (@Count <> 0 )
    BEGIN
    select @tblname = TableName FROM #OrderList WHERE RecordNo = @Count
    select @query = 'DELETE from '+ @tblname
    select @query
    exec sp_executesql @query
    SET @Count = @Count-1
    END

  • 11g child table update locking

    Hi,
    I'm posting this question after searching on multiple places and trying to understand 11g locking mechanism.
    I've a table TXN1 transaction and has FKs to 3 different tables Account, customer, country and currency. ALL FKs are indexed (bitmap). I am updating TXN1 of amount column about 10,000 rows. (SID 1) As expected, it has taken lock type 3 SX on TXN1. But it has taken on lock type 4 (share) on Account, customer and country. Committing every 10k rows.
    At the same time sid 2 is inserting into another TXN2 table which has FK to the same dimensions account, customer and currency. Only FK on ac_id is bitmap indexed. The inserts have taken SX lock(type 3) on tXN2 table (expected). But it is trying to take SX type 3 lock on account, customer, currency tables. typ3 lock taken on CCY but waiting on CST. But It is blocked by sid 1. It has resulted into Enque-TM contention and resulted into anywhere 60-300 secs wait time..
    I understand update/delete in parent table results into locking of SX of child tables and need the FKs to be indexed to avoid etc. I didn't understand the following and appreciate if someone can help me.
    1. Why is SID1 taking shared lock on the parent tables Account,customer,country and currency tables? The update statement is not updating any of those FK columns nor referring them in where clause(if it matters!). Is it to ensure that the parent rows are not deleted?
    2. Why is SID2 taking SX lock on the dimension tables? Why is it not taking RS lock type 2 on parent rows? Why is SID1 taking shared lock type 4, but not 2?
    Thanks
    Ram
    Edited by: rkuppa on May 24, 2013 2:24 PM
    Edited by: rkuppa on May 24, 2013 2:25 PM
    Edited by: rkuppa on May 24, 2013 2:26 PM
    Edited by: rkuppa on May 24, 2013 2:33 PM
    Edited by: rkuppa on May 26, 2013 4:49 PM

    Table TxN(ac_id, cs_id, amt, amt_dollar), PK on ac_id,cs_id. constraint FK on ac_id to Table AC_DIM (ac_id, acctname), FK on cs_id to Table CST_DIM(cs_id, custname). These FK are bitmap indexed.
    Update qry: update TXN set amt_dollar =amt/1.1 where rownum<1000; commit; (sid 308)
    Table TXN2(ac_id, cs_id,ccy_id, amt, amt_dollar), PK on ac_id,cs_id,ccy_id. constraint FK on ac_id to Table AC_DIM (ac_id, acctname), FK on cs_id to Table CST_DIM(cs_id, custname), CCY_DIM(ccy_id). Only ac_id FK in the TXN2 table is indexed to bitmap.
    At the same time, another transaction is inserting into TXN2 1000 rows. (sid 127)
    SELECT l.sid, s.blocking_session blocker, SUBSTR(s.event,1,20),
    l.type, l.lmode, l.request, o.object_name, o.object_type
    FROM v$lock l, dba_objects o, v$session s
    WHERE UPPER(s.username) =  'MY_USER'
    AND l.id1 = o.object_id (+)
    AND l.sid = s.sid
    ORDER BY sid, type;
    SID     BLOCKER     SUBSTR(S.EVENT,1,20)     TYPE     LMODE     REQUEST     OBJECT_NAME     OBJECT_TYPE
    308          db file scattered re     AE     4     0     ORA$BASE     EDITION
    308          db file scattered re     TM     4     0     AC_DIM             TABLE
    308          db file scattered re     TM     4     0     CST_DIM             TABLE
    308          db file scattered re     TM     3     0     TXN             TABLE
    127     308     enq: TM - contention     AE     4     0     ORA$BASE     EDITION
    127     308     enq: TM - contention     TM     3     0     CCY_DIM             TABLE
    127     308     enq: TM - contention     TM     0     3     CST_DIM             TABLE
    *<< I don't see type 3 lock on AC_DIM for sid 127>>*
    SELECT
      S.SID,
      S.PROGRAM,
      S.SQL_HASH_VALUE,
      L.REQUEST,
      L.ID1,
      L.ID2,
      L.LMODE,
      L.TYPE,
      L.BLOCK
    FROM
      V$LOCK L,
      V$SESSION S
    WHERE
      (L.ID1, L.ID2, L.TYPE) IN
      (SELECT
        ID1,
        ID2,
        TYPE
      FROM
        V$LOCK
      WHERE
        REQUEST > 0)
      AND L.SID=S.SID;
    SID     PROGRAM                                      SQL_HASH_VALU REQUEST     ID1     ID2     LMODE     TYPE     BLOCK
    308     SQL Developer                            1733825831     0     509281     0     4     TM     1
    127     db-load.impl.n64@aittsmwp2 (TNS V1-V3)    4097376515     3     509281     0     0     TM     0Edited by: rkuppa on May 24, 2013 6:58 PM
    Edited by: rkuppa on May 24, 2013 7:12 PM
    Edited by: rkuppa on May 24, 2013 7:16 PM
    Edited by: rkuppa on May 26, 2013 4:42 PM
    Edited by: rkuppa on May 26, 2013 4:47 PM
    Edited by: rkuppa on May 26, 2013 4:55 PM

  • How to find  out child tables given a parent table /parent's constraint_nam

    Hi
    I need to disable a primary key but is not able to becoz of referential constraint
    select child_constraint.table_name, child_constraint.constraint_name, child_detail.column_name
    from user_cons_columns child_detail
    join user_constraints child_constraint
    on child_detail.constraint_name = child_detail.constraint_name
    and child_detail.owner = child_detail.owner
    and child_detail.table_name= child_detail.table_name
    where child_constraint.constraint_type='R'
    and child_constraint.status='ENABLED'
    and child_constraint.r_constraint_name='SUBSCRIBER_PK';
    and child_detail.table_name='ADDRESS_BOOK_GROUP';
    Given a table name how would I know all the child tables and the child tables' columns referencing the parent keys?
    thanks

    thanks for the reply
    while the first query is correct
    select child_constraints.table_name child_table_name, child_detail.constraint_name child_constraint_name
    , child_detail.column_name child_column_name, child_constraints.constraint_type child_constraint_type
    , child_constraints.status, parent_constraints.table_name parent_table_name, parent_detail.column_name parent_column_name
    , parent_constraints.constraint_name parent_constraint_name
    , parent_constraints.status parent_constraint_status from
    user_cons_columns child_detail
    join user_constraints child_constraints
    on child_detail.constraint_name=child_constraints.constraint_name
    and child_detail.owner=child_constraints.owner
    and child_detail.table_name=child_constraints.table_name
    join user_constraints parent_constraints
    on parent_constraints.constraint_name=child_constraints.r_constraint_name
    join user_cons_columns parent_detail
    on parent_detail.constraint_name=parent_constraints.constraint_name
    and parent_detail.owner=parent_constraints.owner
    and parent_detail.table_name=parent_constraints.table_name
    where
    child_constraints.r_constraint_name in (
    select constraint_name from user_constraints parent_constraint
    where parent_constraint.constraint_type='P'
    and parent_constraint.status='ENABLED'
    and parent_constraint.table_name='SUBSCRIBER'
    and child_constraints.constraint_type='R'
    and parent_constraints.constraint_type='P'
    --and child_constraints.status='ENABLED'
    order by child_constraints.table_name
    , child_detail.position
    the second query return a lots of garbage why is this so?
    select child_constraints.table_name child_table_name, child_detail.constraint_name child_constraint_name
    , child_detail.column_name child_column_name, child_constraints.constraint_type child_constraint_type
    , child_constraints.status, parent_constraints.table_name parent_table_name, parent_detail.column_name parent_column_name
    , parent_constraints.constraint_name parent_constraint_name
    , parent_constraints.status parent_constraint_status from
    user_cons_columns child_detail
    join user_constraints child_constraints
    on child_detail.constraint_name=child_constraints.constraint_name
    and child_detail.owner=child_constraints.owner
    and child_detail.table_name=child_constraints.table_name
    join user_constraints parent_constraints
    on parent_constraints.constraint_name=child_constraints.r_constraint_name
    join user_cons_columns parent_detail
    on parent_detail.constraint_name=parent_constraints.constraint_name
    and parent_detail.owner=parent_constraints.owner
    and parent_detail.table_name=parent_constraints.table_name
    where
    child_constraints.constraint_type='R'
    and parent_constraints.constraint_type='P'
    --and child_constraints.status='ENABLED'
    order by child_constraints.table_name
    , child_detail.position
    thanks

  • Creation order fo tables

    I Generate Database from Server Model but the DDL statements which create the tables, are generated in a bad order. For example, first create a child table and later the father table.
    How can I specify the cration order for the tables?

    I don't think it makes any difference as all the generated objects go into separate files. Therefore your constraints are added after every table has been created.
    Steve

  • Retrieving all FK from child table in a resultset

    I have a parent and its child table.In child table there are many records containing the same PK of the parent as a foreign key(one to many relationship).Now how can I get all those values (in a resultset) of child table containing the same FK .The code i produced can fetch the first record of the same PK of the parent.But how can I get all with a single SQl statement and iterate through them as necessary.
    String sql1="SELECT * FROM ChildTableName WHERE id= ' 100 ' ; //100 is the PK of Parent table // there are many records in Child Table having 100 as foreign key resultset = statement.executeQuery(sql1); resultset .next();      try{          System.out.println("Data> "+resultset.getString(1));         System.out.println("Data> "+resultset.getString(2));         System.out.println("Data> "+resultset.getString(3));   }catch(SQLException sqle){System.out.println("ERROR REFRESH : " + sqle); }{code} Edited by: Tanvir007 on Apr 17, 2008 4:35 AM Edited by: Tanvir007 on Apr 17, 2008 4:37 AM Edited by: Tanvir007 on Apr 17, 2008 4:40 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    duffymo wrote:
    First of all,ARE U BLIND brother, didn't you see what I wrote-
    String sql= "SELECT Flat_Rent.rent_id,Flat_Rent.flat_name FROM Month_Rent INNER JOIN Flat_Rent ON Month_Rent.rent_id = Flat_Rent.rent_id WHERE Flat_Rent.rent_id = '4-2008'" ;      
    Actually, I did see that. It makes me wonder why you were asking in the first place and what the problem is now.In the first place, I didnt use join,I did it later as u advised.But u asked me later about the join.Why?
    >
    People who have empty catch blocks are fools. If you don't want to be one, log or print the stack trace. It's good information to have, and it'll help you avoid problems in the future.People are fools for many reasons LIKE - even if I told u that I can retrieve record (but only the first record),there is no question of throwing an exception.And I DID fill catch block in the first place,look back.Later, it wasnt that much necessary bcos no exception throws at all.
    However brother many thanks for an attempt to help me.I think I have solved the problem-
    try{
    String sql= "SELECT flat_name,flat_rent,elec_bill FROM Month_Rent INNER JOIN Flat_Rent ON Month_Rent.rent_id = Flat_Rent.rent_id WHERE Flat_Rent.rent_id = '4-2008'" ;      
                             resultset = statement.executeQuery(sql);               
                             resultset .next();
                             do
                                  System.out.println("Flat Name>> " + resultset .getString(1));
                                  System.out.println("Rent>> " + resultset .getString(2));
                                  System.out.println("Elec Bill>> " + resultset .getString(3));
                             while(rs.next());
                        }catch(SQLException sqle){ sqle.printStackTrace();           }But the problem is, The fields in my DB are in this serial- rent_id,flat_name,flat_rent,elec_reading,elec_bill,total_rent,status
    But as you can see from the code that I get the Flat name in 1,Rent in 2 and bill in 3 which should be 2,3,5 respectively.Can you tell me why it is so?

Maybe you are looking for