A many-to-many relational problem (SQL and CFM)

My question:
How to get CFM to return a many-to-many relationship in one
row using cfloop
My table structure:
Table A - Books
BookID | BookName
1 | Book One
Table B -
RelatingTable
BookID | AuthorID
1 | 60
1 | 61
Table C - Authors
AuthorID | AuthorName
60 | Bob
61 | Joe
My query:
SELECT * FROM Books, RelatingTable, Authors AS a
INNER JOIN Books AS b ON b.BookID = r.BookID
INNER JOIN RelatedTable AS r ON r.AuthorID = a.AuthorID
Output I am getting:
b.BookID | b.BookName | r.BookID | r.AuthorID | a.AuthorID |
a.AuthorName
---------|------------|----------|------------|------------|-------------
1 | Book One | 1 | 60 | 60 | Bob
1 | Book One | 1 | 61 | 61 | Joe
I am using a UDF that turns my relationship into a comma list
(authorlist), but the duplicates still return in CFM because the
JOIN relationship
The code I am using in CFM:
<cfloop query="rsBooksQuery">
#b.BookName#, written by #authorlist#
</cfloop>
How Coldfusion is displaying my output:
Book One, written by Bob, Joe
Book One, written by Bob, Joe
How I want my output displayed:
Book One, written by Bob, Joe
I need this to work in cfloop and not cfoutput! I know that
you can use group in CF output, but for the conditions I am using
this query, it must be in a loop
the reason why i keep the JOINs even though i have a UDF to
create a comma list is that some of my CFM pages use variables
passed to the qry to limit which books are displayed, for example
&author=60 (which would display a list of Bob's books that
include the comma list)
If you can suggest anything to help me I will be very
thankful

I need this to work in cfloop and not cfoutput! I know that
you can use
group in CF output, but for the conditions I am using this
query, it
must be in a loop
If you can suggest anything to help me I will be very
thankful
If you can not use <cfoutput...> with its group
feature, you need to
recreate the functionality with <cfloop...>. You can
create nested
<cfloop...> tags that keep track of the changing group
value. It takes
more code, but that's what happens when one sets outside the
bounds of
the built in functionality.

Similar Messages

  • Many to Many relation problem

    Hi,
    JDeveloper 11.1.1.6
    3 tables, let's name them A, B and RelAB
    By default, there is a [1 to *] from A to RelAB and a [1 to *] from B to RelAB.
    Since I wanted to use a master-detail view on my web page, I didn't have the choice to modify these Associations and Links to a [* to *] from A to B, and as well from B to A.
    Now you test the whole thing by running the AppModule. Everything works like a charm.
    The problem is if I go into my A view object and then I change the SQL Mode from Normal to Expert inside the Query tab, the minute I run my AppModule, one of my many to many relationship breaks. Notice that I did not change anything else, just switch from Normal to Expert. Let's say that the A to B relation is working but not the B to A.
    If I put it back to Normal, it works again. You might want to ask, why bother with Expert Mode? It is just that I want to modify this query, I was just trying to identify the source of the problem.
    Anybody experience a similar problem with many-to-many relationships?

    I assume your question is on JAXB, correct?
    I think you need to make on side of the relationship transient, or remove it.
    James : http://www.eclipselink.org

  • Problem in mapping a many to many relation to a list

    Hi,
    I have a problem with mapping a many to many relation to a list.
    I have a Many to Many relation in my database between tables baskets and products. This relation is implemented with a join table basket_products, which has two fields which correspond to the foreign keys to tables baskets and products. The join table need to have another one column "order", which defines the order of the products for the specific basket.
    In my mapping I have:
    @Entity
    @Table(name = "baskets", uniqueConstraints = {})
    public class Components implements java.io.Serializable {
    @ManyToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY)
         @JoinTable( name="baskets_products",
                             joinColumns=@JoinColumn(name="b_id", referencedColumnName="pr_id"),
                             inverseJoinColumns=@JoinColumn(name="pr_id", referencedColumnName="pr_id"))
            //This of course doesn't work!!
           //@OrderBy(value="order")
         public List<Products> getProductses() {
              return this.productses;
         public void setProductses(
                   List<Products> productses) {
              this.productses = productses;
    @Entity
    @Table(name = "products", uniqueConstraints = { })
    public class Products implements java.io.Serializable {
    @ManyToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "productses")
         public Set<Baskets> getBasketses() {
              return this.basketses;
         public void setBasketses(Set<Basket> basketses) {
              this.basketses = basketses;
         }In the EJB spec I read that :
    "The property or field name must correspond to that of a persistent property or field of the associated
    class."
    What to do if I want to use a field from the join table to do the ordering of the list??
    My problem is that the field "order", is not defined to the EJB container as a persistent field, so it cannot be used. But for my needs it is necessary that this field is included in the join table.
    I thought that I could use the secondary table annotation to map the join table to the Baskets class, as well, so that I can define the order field, but this solution seems to me as a really wrong one.
    Can anyone help me??
    Thanks,
    Elenh.

    Hi Martin-
    Can you please help me. Here are the details:
    We have created an AQ in Oracle DB which will have the following message Structure:
    CREATE OR REPLACE TYPE enqueue_payload AS OBJECT
    ( field1 VARCHAR2(100),
    field2 VARCHAR2(100),
    field3 DATE,
    field4 VARCHAR2(100),
    field5 NUMBER,
    payload CLOB,
    In the Payload field we are enqueing an XML message.
    We have to use a OSB proxy service to dequeue the message from the AQ, transform it to another format and send to a SOA Composite.
    We created a AQ Adapter in Jdeveloper 11g and imported the WSDL, XSD and .jca jca binding file into the OSB project. And configured the OSB proxy service using the WSDL imported.
    However in OSB proxy service message flow when I try to create an XQUERY transformation, I see that the Payload field does not expose the structure of the XML message that is being enqueued. I even changed the message structure definition to have the payload field as XMLType. But it didn't help.
    On analyzing the XSD created by AQ Adapter, I see that the payload is being defined as "string" in the XSD.
    Inputs Needed
    =========
    1. How can we parse the payload field defined as CLOB/XMLType in OSB so that I can see the structure of the XML message it holds ?
    2. Is there any in-built function in OSB to convert it to XML ?
    3. Any other inputs in order to transform the XML message coming in the payload field as CLOB/XMLType
    Please provide your inputs and I hope that I have clearly explained my use case.
    Thanks in advance for your time and help!!
    Regards,
    Dibya

  • Hi I am having problems downloading and updating apps on my iPad and iPhone. The message cycles between waiting and loading then I get an error message saying unable to download app. Eventually,after many attempts it works.

    Hi Guys - for a few days I have been having problems downloading and updating apps on my iPad and iPhone. The message cycles between waiting and downloading then eventually says unable to download app. Sometimes after many attempts it wil eventually work. I tested it on an old iPhone 3G and got the same problem so it is not an iOS 5 issue. My WI-FI connection is working fine. I was wondering if this is an App Store problem? Anyone else in the UK having this problem?

    Hi John
    iTunes Support wasn't of any use to me.
    I have also been having another problem - with BBC iPlayer and other video streaming not working due to insufficient bandwidth, despite my overall download speed being consistently around 50Gb.  This is also affecting AppleTV downloads
    I am using Virgin Media as my ISP, and was wondering whether you do as well.  This might be the common thread.
    -Bernard

  • I''m new to Mac, how do I install Adobe CD? I put it in the CD drive and get a menu, everything I click on goes nowhere. In Microsoft, I installed many programs with no problem

    I''m new to Mac, how do I install Adobe CD? I put it in the CD drive and get a menu, everything I click on goes nowhere. In Microsoft, I installed many programs with no problem

    Is the Adobe CD a MAC app ?
    If it is a program for Windows you will not be able to install it.
    If you nedd that program you can either buy the equivalent for Mac or install a way to run Windows under Mac (may be a cheaper solution)

  • How to get data from three tables (A,B,C) having one to many relation between A and B .and having one to many reation between b and c

    i have  three tables A,B,C.  there is one to many relation between A and B. and one to many relation existed between table b and c . how will get data from these three tables

    check if this helps:
    select * --you can always frame your column set
    from tableA a
    left join tableB b on a.aid=b.aid
    left join tableC c on c.bid=b.bid
    This is just a general query. However, we can help you a lot more, if you can post the DDL + sample data and required output.
    Thanks,
    Jay
    <If the post was helpful mark as 'Helpful' and if the post answered your query, mark as 'Answered'>

  • HT201442 I am got error while trying to restore,, but i just only error file with 3194. I try many step by install lastest version and fix host file, but still fail. Anybody can give me any key point to solve this problem? Thank you

    I am got error while trying to restore,, but i just only error file with 3194. I try many step by install lastest version and fix host file, but still fail. Anybody can give me any key point to solve this problem? Thank you

    Error 3194:
    This device isn't eligible for the requested build
    It means that Apple has stopped signing the version of iOS that you have, try downloading the latest iOS version, then try Restore again.

  • I have been using my .mac email address for many years without a problem.  Suddenly over the last few days the emails have been coming in sporadically.  I know this becasue all the emails are coming in on my phone and on the laptop, not on iMac.

    I have been using my .mac email address for many years without any problem.  Suddenly the emails are coming in sporadically or not at all.  I know this because they are all coming in on my phone and laptop.  My gmail account seems unaffected with emails coming in fine.   Any ideas?  Thanks
    Marian

    Back up all data. Rebuild the mailbox.

  • Like many people I have problems with Backup and n...

    When i try to backup my n80 via Nokia suite i receive error message on 1% "Connection to phone was lost.Please reconnect and restart backup.".I try to backup via blouetooth and USB cable that comes with n80 (CA-53), same problem!
    Windows XP Pro SP2 with last updates!
    Running Nokia Suite 6.80.22
    Bluetooth from D-Link DBT-120 with latest drivers
    I use windows firewall, AVG Antivirus and Search & Destroy, but havent any error messages by installation of Nokia Suite!
    All things in Nokia Suite works without problems, except Content Copier!
    I use for conncetion USB 2.0 on front from case!But its not a hub, its direct pluged into mainboard!
    N80 firmware is V 3.0614.0.3 11-04-2006
    And sorry for my poor english!

    Allready tryed to connect USB cable on back from my PC,
    It does not help, same thing like before!
    I can only backup when I chose in settings from Content Copier "Include only memory card."
    In time I installed some applications in phone (I read post from cracker1979), but I haved same problem after I received my phone, I only create contacts and tryed to Backup, with same error mesage!
    I tryed allready before my posts to find answers on my qastions, but without luck, I cant find post that end with "This is resolved with this method" etc....but i see many people have same problem like me!Message Edited by dado on 18-Jul-2006
    01:46 PM

  • Many to Many Relations Problem

    I have following two classes with many-to-many case:
    public class Protocol {
    private long protocolId;
    private final Collection keyPersons = new ArrayList();
    public void addKeyPerson(Person person) {
    person.addKeyProtocol(this);
    public void removeKeyPerson(Person person) {
    person.removeKeyProtocol(this);
    public class Person {
    private long personId;
    private final Collection keyProtocols = new ArrayList();
    public void addKeyProtocol(Protocol protocol) {
    protocol.getKeyPersonsCollection().add(this);
    keyProtocols.add(protocol);
    public void removeKeyProtocol(Protocol protocol) {
    protocol.getKeyPersonsCollection().remove(this);
    keyProtocols.remove(protocol);
    The meta data is:
    <?xml version="1.0"?>
    <jdo>
    <package name="peacetech.nih.nhlbi.iasp.dao">
    <class name="Protocol" identity-type="application"
    objectid-class="peacetech.nih.nhlbi.iasp.dao.oid.ProtocolOid">
    <extension vendor-name="tt" key="table" value="protocol"/>
    <extension vendor-name="tt" key="pk-column" value="int_protocol"/>
    <extension vendor-name="tt" key="lock-column" value="none"/>
    <extension vendor-name="tt" key="class-column" value="none"/>
    <field name="protocolId" primary-key="true">
    <extension vendor-name="tt" key="data-column" value="int_protocol"/>
    </field>
    <field name="keyPersons">
    <collection element-type="Person"/>
    <extension vendor-name="tt" key="inverse" value="keyProtocols"/>
    <extension vendor-name="tt" key="table" value="KeyPersonnel"/>
    <extension vendor-name="tt" key="personId-data-column" value="PID"/>
    <extension vendor-name="tt" key="protocolId-ref-column"
    value="int_protocol"/>
    </field>
    </class>
    <class name="Person" identity-type="application"
    objectid-class="peacetech.nih.nhlbi.iasp.dao.oid.PersonOid">
    <extension vendor-name="tt" key="table" value="Personnel"/>
    <extension vendor-name="tt" key="pk-column" value="PID"/>
    <extension vendor-name="tt" key="lock-column" value="none"/>
    <extension vendor-name="tt" key="class-column" value="none"/>
    <field name="personId" primary-key="true">
    <extension vendor-name="tt" key="data-column" value="PID"/>
    </field>-
    <field name="keyProtocols">
    <collection element-type="Protocol"/>
    <extension vendor-name="tt" key="inverse" value="keyPersons"/>
    <extension vendor-name="tt" key="table" value="KeyPersonnel"/>
    <extension vendor-name="tt" key="protocolId-data-column"
    value="int_protocol"/>
    <extension vendor-name="tt" key="personId-ref-column" value="PID"/>
    </field>
    </class>
    The assignment works fine beetwen New Persistent Protocol and Persons, but
    when ever I try to add new assignment between existing protocol and person:
    void updateProtocol(PersistenceManager pm){
    Extent e = pm.getExtent (Person.class, true);
    Query query = pm.newQuery (Person.class, e, "fname == \"Alex\"");
    Collection collection = (Collection) query.execute();
    Iterator i = collection.iterator ();
    Person alex = (Person)i.next();
    System.out.println("Person to assign" + alex);
    e = pm.getExtent (Protocol.class, true);
    query = pm.newQuery (Protocol.class, e, "projectTitle == \"This is
    JDO test N1\"");
    collection = (Collection) query.execute();
    i = collection.iterator ();
    Protocol firstProtocol = (Protocol)i.next();
    try {
    pm.currentTransaction().begin();
    e = pm.getExtent (Person.class, true);
    query = pm.newQuery (Person.class, e, "fname == \"Brian\"");
    collection = (Collection) query.execute();
    i = collection.iterator ();
    while (i.hasNext ())
    firstProtocol.addKeyPerson((Person)(i.next()));/*Exception
    here!*/
    pm.currentTransaction().commit();
    } catch (Exception ex) {
    pm.currentTransaction().rollback();
    ex.printStackTrace(System.out);
    I have following exception:
    javax.jdo.JDOUserException: The given element "
    =======Person=======
    First Name: Brian
    Last Name: Agricola
    Phone: null
    Email: null
    ====================" does not meet the requirements for the container.
    at
    com.solarmetric.kodo.util.SecondClassObjects.checkValue(SecondClassObjects.j
    ava:224)
    at com.solarmetric.kodo.util.ProxyLinkedList.add(ProxyLinkedList.java:71)
    at peacetech.nih.nhlbi.iasp.dao.Person.addKeyProtocol(Person.java:176)
    at peacetech.nih.nhlbi.iasp.dao.Protocol.addKeyPerson(Protocol.java:147)
    at peacetech.nih.nhlbi.iasp.IASPTest.updateProtocol(IASPTest.java:142)
    at peacetech.nih.nhlbi.iasp.IASPTest.updateProtocol(IASPTest.java:110)
    at peacetech.nih.nhlbi.iasp.IASPTest.runTest(IASPTest.java:28)
    at peacetech.nih.nhlbi.iasp.IASPTest.main(IASPTest.java:22)
    I have the same problem also for one to many.
    Can you help me with it?
    Thanks,
    Kirill.

    I have following two classes with many-to-many case:
    public class Protocol {
    private long protocolId;
    private final Collection keyPersons = new ArrayList();
    public void addKeyPerson(Person person) {
    person.addKeyProtocol(this);
    public void removeKeyPerson(Person person) {
    person.removeKeyProtocol(this);
    public class Person {
    private long personId;
    private final Collection keyProtocols = new ArrayList();
    public void addKeyProtocol(Protocol protocol) {
    protocol.getKeyPersonsCollection().add(this);
    keyProtocols.add(protocol);
    public void removeKeyProtocol(Protocol protocol) {
    protocol.getKeyPersonsCollection().remove(this);
    keyProtocols.remove(protocol);
    The meta data is:
    <?xml version="1.0"?>
    <jdo>
    <package name="peacetech.nih.nhlbi.iasp.dao">
    <class name="Protocol" identity-type="application"
    objectid-class="peacetech.nih.nhlbi.iasp.dao.oid.ProtocolOid">
    <extension vendor-name="tt" key="table" value="protocol"/>
    <extension vendor-name="tt" key="pk-column" value="int_protocol"/>
    <extension vendor-name="tt" key="lock-column" value="none"/>
    <extension vendor-name="tt" key="class-column" value="none"/>
    <field name="protocolId" primary-key="true">
    <extension vendor-name="tt" key="data-column" value="int_protocol"/>
    </field>
    <field name="keyPersons">
    <collection element-type="Person"/>
    <extension vendor-name="tt" key="inverse" value="keyProtocols"/>
    <extension vendor-name="tt" key="table" value="KeyPersonnel"/>
    <extension vendor-name="tt" key="personId-data-column" value="PID"/>
    <extension vendor-name="tt" key="protocolId-ref-column"
    value="int_protocol"/>
    </field>
    </class>
    <class name="Person" identity-type="application"
    objectid-class="peacetech.nih.nhlbi.iasp.dao.oid.PersonOid">
    <extension vendor-name="tt" key="table" value="Personnel"/>
    <extension vendor-name="tt" key="pk-column" value="PID"/>
    <extension vendor-name="tt" key="lock-column" value="none"/>
    <extension vendor-name="tt" key="class-column" value="none"/>
    <field name="personId" primary-key="true">
    <extension vendor-name="tt" key="data-column" value="PID"/>
    </field>-
    <field name="keyProtocols">
    <collection element-type="Protocol"/>
    <extension vendor-name="tt" key="inverse" value="keyPersons"/>
    <extension vendor-name="tt" key="table" value="KeyPersonnel"/>
    <extension vendor-name="tt" key="protocolId-data-column"
    value="int_protocol"/>
    <extension vendor-name="tt" key="personId-ref-column" value="PID"/>
    </field>
    </class>
    The assignment works fine beetwen New Persistent Protocol and Persons, but
    when ever I try to add new assignment between existing protocol and person:
    void updateProtocol(PersistenceManager pm){
    Extent e = pm.getExtent (Person.class, true);
    Query query = pm.newQuery (Person.class, e, "fname == \"Alex\"");
    Collection collection = (Collection) query.execute();
    Iterator i = collection.iterator ();
    Person alex = (Person)i.next();
    System.out.println("Person to assign" + alex);
    e = pm.getExtent (Protocol.class, true);
    query = pm.newQuery (Protocol.class, e, "projectTitle == \"This is
    JDO test N1\"");
    collection = (Collection) query.execute();
    i = collection.iterator ();
    Protocol firstProtocol = (Protocol)i.next();
    try {
    pm.currentTransaction().begin();
    e = pm.getExtent (Person.class, true);
    query = pm.newQuery (Person.class, e, "fname == \"Brian\"");
    collection = (Collection) query.execute();
    i = collection.iterator ();
    while (i.hasNext ())
    firstProtocol.addKeyPerson((Person)(i.next()));/*Exception
    here!*/
    pm.currentTransaction().commit();
    } catch (Exception ex) {
    pm.currentTransaction().rollback();
    ex.printStackTrace(System.out);
    I have following exception:
    javax.jdo.JDOUserException: The given element "
    =======Person=======
    First Name: Brian
    Last Name: Agricola
    Phone: null
    Email: null
    ====================" does not meet the requirements for the container.
    at
    com.solarmetric.kodo.util.SecondClassObjects.checkValue(SecondClassObjects.j
    ava:224)
    at com.solarmetric.kodo.util.ProxyLinkedList.add(ProxyLinkedList.java:71)
    at peacetech.nih.nhlbi.iasp.dao.Person.addKeyProtocol(Person.java:176)
    at peacetech.nih.nhlbi.iasp.dao.Protocol.addKeyPerson(Protocol.java:147)
    at peacetech.nih.nhlbi.iasp.IASPTest.updateProtocol(IASPTest.java:142)
    at peacetech.nih.nhlbi.iasp.IASPTest.updateProtocol(IASPTest.java:110)
    at peacetech.nih.nhlbi.iasp.IASPTest.runTest(IASPTest.java:28)
    at peacetech.nih.nhlbi.iasp.IASPTest.main(IASPTest.java:22)
    I have the same problem also for one to many.
    Can you help me with it?
    Thanks,
    Kirill.

  • Is my iPhone 4 greyed out wifi and non working bluetooth software or hardware... seems that the forums are full of this issue with no consistent or official answer. is it all coincidence that so many are having the problem? Please help...

    Is my iPhone 4 greyed out wifi and non working bluetooth software or hardware... seems that the forums are full of this issue with no consistent or official answer. is it all coincidence that so many are having the problem? Please help... I have scoured the net trying everything the last few days.

    Please correct your porfile: iPhone 4 do not have IOS 6.1.4.
    The usual troubleshooting steps are, also remember to test it after every step:
    1. Restart
    2. Reset
    3. Restore from backup
    4. Restore as new.
    If no joy, make an Appointment with the Apple genius and have them evaluate

  • Why am I facing so many problem after upgrading to ios7, my phone hangs/stuck many times, applications just stop working and close themselves, battery drainage,Facebook and all applications don't work properly. What should I do? They punished me for upgra

    I'm using iPhone 5
    Why am I facing so many problem after upgrading to ios7, my phone hangs/stuck many times, applications just stop working and close themselves, battery drainage,Facebook and all applications don't work properly. What should I do? They punished me for upgrading to ios7. I now hate apple and I'm thing of getting samsung.

    Basic troubleshooting
    Reset
    Restore with backup
    Restore as new ( better )

  • Dynamic SQL and Bulk Bind... Interesting Problem !!!

    Hi Forum !!
    I've got a very interesting problem involving Dynamic SQL and Bulk Bind. I really Hope you guys have some suggestions for me...
    Table A contains a column named TX_FORMULA. There are many strings holding expressions like '.3 * 2 + 1.5' or '(3.4 + 2) / .3', all well formed numeric formulas. I want to calculate each formula, finding the number obtained as a result of each calculation.
    I wrote something like this:
    DECLARE
    TYPE T_FormulasNum IS TABLE OF A.TX_FORMULA%TYPE
    INDEX BY BINARY_INTEGER;
    TYPE T_MontoIndicador IS TABLE OF A.MT_NUMBER%TYPE
    INDEX BY BINARY_INTEGER;
    V_FormulasNum T_FormulasNum;
    V_MontoIndicador T_MontoIndicador;
    BEGIN
    SELECT DISTINCT CD_INDICADOR,
    TX_FORMULA_NUMERICA
    BULK COLLECT INTO V_CodIndicador, V_FormulasNum
    FROM A;
    FORALL i IN V_FormulasNum.FIRST..V_FormulasNum.LAST
    EXECUTE IMMEDIATE
    'BEGIN
    :1 := TO_NUMBER(:2);
    END;'
    USING V_FormulasNum(i) RETURNING INTO V_MontoIndicador;
    END;
    But I'm getting the following messages:
    ORA-06550: line 22, column 43:
    PLS-00597: expression 'V_MONTOINDICADOR' in the INTO list is of wrong type
    ORA-06550: line 18, column 5:
    PL/SQL: Statement ignored
    ORA-06550: line 18, column 5:
    PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL
    Any Idea to solve this problem ?
    Thanks in Advance !!

    Hallo,
    many many errors...
    1. You can use FORALL only in DML operators, in your case you must use simple FOR LOOP.
    2. You can use bind variables only in DML- Statements. In other statements you have to use literals (hard parsing).
    3. RETURNING INTO - Clause in appropriate , use instead of OUT variable.
    4. Remark: FOR I IN FIRST..LAST is not fully correct: if you haven't results, you get EXCEPTION NO_DATA_FOUND. Use Instead of 1..tab.count
    This code works.
    DECLARE
    TYPE T_FormulasNum IS TABLE OF VARCHAR2(255)
    INDEX BY BINARY_INTEGER;
    TYPE T_MontoIndicador IS TABLE OF NUMBER
    INDEX BY BINARY_INTEGER;
    V_FormulasNum T_FormulasNum;
    V_MontoIndicador T_MontoIndicador;
    BEGIN
    SELECT DISTINCT CD_INDICATOR,
    TX_FORMULA_NUMERICA
    BULK COLLECT INTO V_MontoIndicador, V_FormulasNum
    FROM A;
    FOR i IN 1..V_FormulasNum.count
    LOOP
    EXECUTE IMMEDIATE
    'BEGIN
    :v_motto := TO_NUMBER('||v_formulasnum(i)||');
    END;'
    USING OUT V_MontoIndicador(i);
    dbms_output.put_line(v_montoindicador(i));
    END LOOP;
    END;You have to read more about bulk- binding and dynamic sql.
    HTH
    Regards
    Dmytro
    Test table
    a
    (cd_indicator number,
    tx_formula_numerica VARCHAR2(255))
    CD_INDICATOR TX_FORMULA_NUMERICA
    2 (5+5)*2
    1 2*3*4
    Message was edited by:
    Dmytro Dekhtyaryuk

  • Many to Many PL/SQL - how to nest a linking table?

    I have two objects that are linked with a many-to-many relations. These two objects have to be nested inside a third object. How should I do ?
    I created the type and the table for A, I did the same for B and I finally created the linking table for A and B. How shall I nest this table inside the object C?
    Thank you very much for your help as I am new to PL SQL.

    I need to create one object called Container. From a modelling perspective, this object has contains all the other objects.
    The other objects are items and composed items. The Container contains the items (it is a one-to-many relationships so I created a nested table) but it also contains composed items, which are items linked to parts and this is a many-to-many relationship. How do I do to include the many-to-many in the object container? I included question marks when I did not know. Thank you
    CREATE OR REPLACE TYPE Item_type (
    Id NUMBER (6),
    Type CHAR (7)) ;
    CREATE OR REPLACE TYPE Part_type (
    Id NUMBER (6),
    Type CHAR (7)) ;
    CREATE TABLE Item OF Item_type
    (Id NOT NULL,
    PRIMARY KEY (Id));
    CREATE TABLE Part OF Part_type
    (Id NOT NULL,
    PRIMARY KEY (Id));
    CREATE TABLE ComposedItems
    (ItemId REF Item_type ,
    PartId REF Part_type);
    CREATE OR REPLACE TYPE ComposedItems_nested as TABLE OF *????????*
    CREATE OR REPLACE TYPE Item_type (
    Id NUMBER (6),
    Type CHAR (7));
    CREATE OR REPLACE TYPE Item_nested as TABLE OF Item_type;
    CREATE OR REPLACE TYPE Container_type (
    Id NUMBER (6),
    Type CHAR (7),
    Item Item_nested,
    /

  • Many-to-many relation

    Hi,
    There is a many-to-many relation defined for the following tables:
    Table T_PRICEAFFECTOR
    Name Type
    NAME VARCHAR2(100)
    ISACCUMULATIVE NUMBER(1)
    RATE NUMBER(10,10)
    PRICEAFFECTOR_ID NOT NULL NUMBER(10)
    CATALOG_ID NOT NULL NUMBER(10)
    UNITTYPE NOT NULL NUMBER(1)
    and
    Table T_PRICEAFFECTINGCHAIN
    Name Type
    PRICEAFFECTINGCHAIN_ID NOT NULL NUMBER(10)
    NAME VARCHAR2(100)
    ISDEFAULTFORSTORE NUMBER(1)
    CATALOG_ID NOT NULL NUMBER(10)
    There is also a third table defining the many-to-many relation:
    TABLE T_PRICEAFFECTORTOCHAIN
    Name Type
    PRICEAFFECTOR_ID NOT NULL NUMBER(10)
    PRICEAFFECTINGCHAIN_ID NOT NULL NUMBER(10).
    The classes defined are as follows:
    public class PriceAffectorsChain
         private Catalog catalog;
         private long priceAffectorsChainId;
         private String name;
         private boolean isDefaultForStore;
         private Collection priceAffectors = new HashSet ();
         private Collection products = new HashSet ();
    public class PriceAffector
         private long priceAffectorId;
         private long isAccumulative;
         private String name;
         private double rate;
         private Catalog catalog;
         private int unitType;
         private Collection priceAffectorsChains = new HashSet ();
    and these are defined in the jdo descriptor in the following way:
    <class name="PriceAffector" identity-type="application"
    objectid-class="jp.telewave.platpark.eis.dao.pk.PriceAffectorPK">
         <extension vendor-name="kodo" key="lock-column" value="none"/>
         <extension vendor-name="kodo" key="class-column" value="none"/>
         <extension vendor-name="kodo" key="table" value="T_PRICEAFFECTOR"/>
         <field name="priceAffectorId" primary-key="true">
              <extension vendor-name="kodo" key="data-column"
    value="PRICEAFFECTOR_ID"/>
         </field>
         <field name="isAccumulative">
              <extension vendor-name="kodo" key="data-column" value="ISACCUMULATIVE"/>
         </field>
         <field name="name">
              <extension vendor-name="kodo" key="data-column" value="NAME"/>
         </field>
         <field name="rate">
              <extension vendor-name="kodo" key="data-column" value="RATE"/>
         </field>
         <field name="unitType">
              <extension vendor-name="kodo" key="data-column" value="UNITTYPE"/>
         </field>
         <field name="catalog">
              <extension vendor-name="kodo" key="catalogId-data-column"
    value="CATALOG_ID"/>
         </field>
         <field name="priceAffectorsChains">
              <collection element-type="PriceAffectorsChain"/>
              <extension vendor-name="kodo" key="read-only" value="true"/>
              <extension vendor-name="kodo" key="inverse" value="priceAffectors"/>
              <extension vendor-name="kodo" key="table"
    value="T_PRICEAFFECTORTOCHAIN"/>
              <extension vendor-name="kodo" key="priceAffectorId-ref-column"
    value="PRICEAFFECTOR_ID"/>
              <extension vendor-name="kodo" key="priceAffectorsChainId-data-column"
    value="PRICEAFFECTINGCHAIN_ID"/>
         </field>
    </class>
    <class name="PriceAffectorsChain" identity-type="application"
    objectid-class="jp.telewave.platpark.eis.dao.pk.PriceAffectorsChainPK">
         <extension vendor-name="kodo" key="lock-column" value="none"/>
         <extension vendor-name="kodo" key="class-column" value="none"/>
         <extension vendor-name="kodo" key="table" value="T_PRICEAFFECTINGCHAIN"/>
         <field name="priceAffectorsChainId" primary-key="true">
              <extension vendor-name="kodo" key="data-column"
    value="PRICEAFFECTINGCHAIN_ID"/>
         </field>
    <field name="catalog">
              <extension vendor-name="kodo" key="catalogId-data-column"
    value="CATALOG_ID"/>
         </field>
         <field name="name">
              <extension vendor-name="kodo" key="data-column" value="NAME"/>
         </field>
         <field name="isDefaultForStore">
         <extension vendor-name="kodo" key="data-column"
    value="ISDEFAULTFORSTORE"/>
         </field>
         <field name="priceAffectors">
              <collection element-type="PriceAffector"/>
              <extension vendor-name="kodo" key="read-only" value="false"/>
              <extension vendor-name="kodo" key="inverse"
    value="priceAffectorsChains"/>
              <extension vendor-name="kodo" key="table"
    value="T_PRICEAFFECTORTOCHAIN"/>
              <extension vendor-name="kodo" key="priceAffectorsChainId-ref-column"
    value="PRICEAFFECTINGCHAIN_ID"/>
              <extension vendor-name="kodo" key="priceAffectorId-data-column"
    value="PRICEAFFECTOR_ID"/>
         </field>
         <field name="products">
         <collection element-type="Product"/>
         <extension vendor-name="kodo" key="inverse" value="priceAffectorsChain"/>
         </field>
    </class>
    =============================================================
    Ok. The problem with the mapping is that it works only one way. What I
    mean is that when I try to add new PriceAffectorsChain with many
    PriceAffector objects only the PriceAffectorsChain object is being
    persisted, and none of the PriceAffectors are persisted in the
    many-to-many table (T_PRICEAFFECTORTOCHAIN), even when the read-only
    extensions are set.
    That was not the case when I tried to add new PriceAffector with many
    PriceAfffectorsChain - everything worked.
    Any Ideas?
    -Ivan

    Abe White wrote:
    When you have a two-sided relation, you need to be maintaining both sides
    of the relation at all times. Whenever an A is added to a B, the B must
    be added to the A as well. Keep your in-memory Java objects consistent
    (just as if they were not persistent), and JDO will take care of the rest.Abe White wrote:
    When you have a two-sided relation, you need to be maintaining both sides
    of the relation at all times.
    Whenever an A is added to a B, the B must
    be added to the A as well. Keep your in-memory Java objects consistent
    (just as if they were not persistent), and JDO will take care of the rest.Ok. I agree.
    I think that I'm doing this or maybe I'm wrong. Below is the code that
    adds new price affectors chain with collection of price affectors (all of
    them already persistent). Each of the price affectors is being looked up
    and is consistent (this is what getObjectById is doing, isn't it?) and
    then the price affector chain is being persisted.
    =================================================================
    PersistenceManager pm = null;
    PriceAffectingChain newPriceAffectorsChain = null;
    HashSet priceAffectors = null;
    try {
    pm = persistenceManagerFactory.getPersistenceManager();
    // getting the catalog object
    long catalogId = priceAffectorsChain.getCatalog().getCatalogId();
    CatalogPK catalogPK = new CatalogPK(catalogId);
    Catalog newPriceAffectorsChainCatalog =
    (Catalog)pm.getObjectById(catalogPK, true);
    // making new price affecting chain
    newPriceAffectorsChain = new PriceAffectingChain(
    BeanHelper.getNextSequence(DBObjects.SEQ_PRICEAFFECTINGCHAIN),
    priceAffectorsChain.getName(),
         priceAffectorsChain.getIsDefaultForStore(),
         newPriceAffectorsChainCatalog);
    // retrieval of price affector objects for this chain
    System.out.println("the size of the price affectors is: " +
    priceAffectorPKs.length);
    if (priceAffectorPKs != null && priceAffectorPKs.length > 0) {
         priceAffectors = new HashSet(priceAffectorPKs.length);
    for (int i = 0; i < priceAffectorPKs.length; i++) {
              PriceAffectorPK currentPAPK = priceAffectorPKs;
              PriceAffector currentPA = (PriceAffector)pm.getObjectById(currentPAPK,
    true);
              priceAffectors.add(currentPA);
              System.out.println("The " + currentPA.getName() + " price affector was
    added");
    if (priceAffectors == null) {
         priceAffectors = new HashSet();
    System.out.println("size of priceAffectors: " +
    priceAffectors.size());
    newPriceAffectorsChain.setPriceAffectors(priceAffectors);
    pm.makePersistent(newPriceAffectorsChain);
    } catch {
    ===========================================================
    The problem is that the presistence works only for the table of
    PriceAffectingChain obejct and not for the relation table. I tried on
    purpose to add new price affectors with collection of price affecting
    chains and it worked for both tables (the one for PriceAffector object and
    the relation table.
    I have no idea what I can try next. Any advice or help are welcomed.
    Thanks.
    -Ivan

Maybe you are looking for

  • Suggestion​: General Discussion​s\Off Topic Section

    hi, it would be great to have an off topic forum/section here for us to interact and have general discussions. almost every forum i'm a member of has an Off Topic section. we can get to know each other much better and share useful information and opi

  • How to i get a nano 6th gen to stop playing the same song over and over?

    how do i get a nano 6th gen to stop playing the same song over and over?  thanks

  • Any Spatial Method which can Insert Polygon Geometry in Table

    Hi All, Is there any Method of Oracle Spatial which can insert a polygon plotted with polygon tool on the map directly into any database table or do we have to resort to get each of the co-ordinates from the map and create a procedure to insert the o

  • Control Break in Interative report

    Hi All, I need to add a control break on a column for a report. I ran the report and tried to add it, but there are already 6 column breaks and need to add one more. How can I do that? Thanks.

  • Using RH_READ_INFTY_1000

    I am trying to use FM RH_READ_INFTY_1000 What type does the variable exporting its value to OBJID need to be? CALL FUNCTION 'RH_READ_INFTY_1000' EXPORTING   AUTHORITY              = 'DISP'   WITH_STRU_AUTH         = 'X'    PLVAR                  = '0