Oracle - Slash escapen?
-
Hi,
ich habe hier eine Oracle DB 9i und möch´te ganz gern einige Spalten auf bestimmte Werte prüfen und dazu brauche ich eine Escape sequenz.
Jetzt hab ich folgendes:
select spalte from tabelle where spalte like '%=/%' escape '='
das funktioniert mit unterstichen oä. super nur mich einen Slash (/) geht es nicht, da bekomm ich immer Ora-00911 ungültiges Zeichen. Gibt es eine besondere Methode um einen Slash zu escapen?
-
Hi,
kannte das Konstrukt noch nicht und hab's gerade mal ausprobiert. Es sollte nur mit '_' und '%' funktionieren, sonst kommt ORA-01424. Wieso verwendest du an der Stelle escape?
Grüße
-
Nun in der Datenbank sind unmengen an Dokumenten gespeichert und unteranderem auch mit solchen Dateinamen: abc/a1.pdf
Jetzt brauch ich genau die Menge, welche eine Slash im Dateinamen hat, damit diese entsprechend umbenannt werden können, weil das immer zu Problemen führt.
Denn letzendlich kommt es gerade zu einem Total-Export aus der DB und dafür werden dann natürlich absolute Pfade gesetzt im Verzeichnissystem und jeder Slash steht dann dummerweise für ein Unterverzeichnis, was bei den Namensgebungens ehr unglücklich ist. nur fällt mir gerade nichts ein wie ich ORacle sagen kann das das was im Dateinamen steht einfach nur als String mitzunehmen ist.
Also wie würde man das jetzt escapen oder von mir aus auch mit einer Oracle Funktion filtern?
-
Ähm, also hier auf meiner 10er gehts einfach so
select * from tabelle where feld like '%/%'
Falls er das nicht frisst, kannst du auch sowas machen:
select * from tabelle where feld like ('%' || chr(47) || '%')
"47" ist natürlich der AscII Code fürs "/"