Announcement

Collapse
No announcement yet.

XMLQuery - Syntax (XMLAgg)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XMLQuery - Syntax (XMLAgg)

    Hi! Ich bins mal wieder
    Habe ein Problem mit einer eigentlich relativ simplen XML-Query gegen meine DB. Ich bekomme allerdings den Fehler ORA-00907: missing right parenthesis

    Code:
    select XMLElement("OBJECTS",
        XMLForest(obj.ID,obj.PID,obj.NAME),
        (
            select XMLAgg(
                XMLElement("GROESSEN",
                    XMLForest(gro.ID,gro.WERT)
                )
             )
             from GROESSEN gro where gro.id = obj.id
        
             select XMLAgg(
                XMLElement("OBJ_NAM",   
                    XMLForest(objnam.ID,objnam.ID_NAME)
                          )
                  )
                  from PADBS_OBJ_NAM objnam where objnam.id = obj.id and objnam.id_name = gro.id_name     
        )
    ) 
    from obj where obj.ID = 16116
    Mein Ziel ist es eigentlich folgenden Output zu generieren:
    Code:
    <OBJECTS>
       <ID></ID>
       <PID></PID>
       <NAME></NAME>
       <GROESSE>
          <ID></ID>
          <WERT></WERT>
        </GROESSE>
       <OBJ_NAM>
          <ID></ID>
          <ID_NAME></ID_NAME>
       </OBJ_NAM>
    </OBJECTS>
    Kann leider keine fehlende Klammer entdecken
    Hat sonst noch wer ne Idee was an der Syntax falsch sein könnte?
    Wäre für jede Hilfe dankbar!

  • #2
    ok, hab jetzt nochmal bisschen rumgespielt.
    Ein Problem scheint wohl der "Übergang" zwischen
    Code:
             from GROESSEN gro where gro.id = obj.id
        
             select XMLAgg(
    zu sein.

    Nur weiß ich nicht wie man das richtig verknüpfen soll?
    Habs mit XMLConcat versucht:
    Code:
    select XMLElement("OBJECTS",
        XMLForest(obj.ID,obj.PID,obj.NAME),
         select XMLConcat (
             XMLAgg(
                XMLElement("GROESSEN",
                    XMLForest(gro.ID,gro.WERT)
                )
             ),
              XMLAgg(
                XMLElement("OBJ_NAM",   
                    XMLForest(objnam.ID,objnam.ID_NAME)
                          )
                  )
                  )   from PADBS_OBJ_NAM objnam, GROESSEN gro where objnam.id = obj.id and objnam.id_name = gro.id_name and gro.id = obj.id
    ) 
    from PADBS_OBJECTS obj where obj.ID = 16116
    Aber irgendwie will das auch nicht wirklich
    (ORA-00936: missing expression)

    Was mach ich falsch?

    Comment

    Working...
    X