Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Oracle Behandlung von Punkten (.)

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    02.09.2005
    Beiträge
    8

    Oracle Behandlung von Punkten (.)

    Hallo zusammen

    Ich arbeite gerade an einem Oracle-Projekt, in dem ein Gesetz im XML-Format in die Datenbank geschrieben wird. In diesem Gesetz gibt es Artikel, Absätze, Ziffern etc.

    Nun gibt es Gewisse Artikel mit Ziffern, die im Index einen Punkt haben. Zum Beispiel: art:3;abs:2;ziff:2.3.

    Dies entspricht einer Klartext-Positionsangabe in einer separaten Spalte, um in der XML-Spalte den entsprechenden Node zu finden.

    Wenn ich jetzt eine einfache Abfrage nach diesem Feld mache, sprich:

    Code:
    select * from db where position='art:3;abs:2;ziff:2.3'
    dann wird mir diese Zeile auch angezeigt.

    Wenn ich jedoch diese Position aus dem XML-Feld auslesen will mit Oracle-XML-Funktionen:

    Code:
    select rowid from db where rowid=CHARTOROWID('die_rowid') and EXISTSNODE(feld,'/xml/pfad/zu/art[@position="art:3"]/abs[@position="abs:2"]/ziff[@position="ziff:2.3"]')=1
    dann erhalte ich kein Resultat obschon der zu suchende Node vorhanden ist. Dieses Verhalten ist ausschliesslich bei Nodes mit Indexes, die mit Punkten versehen sind, festzustellen.
    Irgendwie kann ich nicht verstehen, warum das nicht gehen sollte. "ziff:2.3" ist ja ein String.

    Ich erhalte auch keine Fehlermeldung. Und dass der Punkt in ziff:2.3 als Steuerzeichen interpretiert wird, kann ich mir kaum vorstellen. Dennoch frage ich mich, ob ich diesen Punkt speziell behandeln muss, damit das zweite oben beschriebene select eine Antwort liefert.
    Geändert von anquijix (24-07-2008 um 09:39 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •