![]() |
Suchen in Oracle!!!
Hallo,
Ich habe da ein Programm geschrieben, wobei es sich um eine Dokumentverwaltung handelt. Die Dokumente selber (tif und pdf) werden auf einer UNIX Maschine gespeichert. Noch alles gut und schön. Diese Dokumente sind im Prizip mit einem Datensatz in einer Oracle-Entität verlinkt. Diese Datensätze speichern verschiedene Information über das Dokument. Unter anderem kann man eine Bemerkung zu dem Dokument verfassen, bzw. festhalten. Die Bemerkung basiert auf einem Long-Feld in der Oracle-Datenbank, damit ich die RichEdit funktionalitäten benutzen kann. Für eine Suche-Engine, muss ich AUCH in dem Bemerkungsfeld suchen können, wobei ich gehörig auf die Schnauze gefallen bin. Gibt es eine Möglichkeit in einem Long-Feld zu suchen??? Der Kunde der das haben will hat Oracle-Server Enterprise Edition und den Oracle-Client 7 sowie der Version 8 im Einsatz. Was kann ich tuen??? Ich freue mich auf jede Antwort. Gruss Samson |
Re: Suchen in Oracle!!!
Hallo,
um in einem Long-Feld zu suchen brauchst du IntermediaText und einen speziellen Index auf dieser Spalte. Alternativ kannst du statt Long einen CLOB oder BLOB verwenden. Dann kannst du über das Package DBMS_LOB die gewünschten Operationen durchführen. In diesem Fall könnte das so aussehen:
SQL-Code:
Select *
From Tabelle Where DBMS_LOB.Instr(LOBSPALTE, 'Hallo') > 0 |
Re: Suchen in Oracle!!!
Hallo Garby.
Danke für Deine Antwort. Jetzt ist bei mir nur die Frage, ob der Oracle-Client 7 soetwas unterstützt. Soviel ich weiss hat der den Datentyp: clob bzw. blob nicht. Soviel ich weiss auch nicht das DBMS-Package. Hmpf. Aber die erste Alternative scheint interessant zu sein. Kannst du mir darüber zu erzählen??? Danke schon jetzt. Gruss Samson |
Re: Suchen in Oracle!!!
Hallo,
BLOBS wurden definitiv von Oracle7, und somit auch vom 7-er Client unterstützt. Das DBMS_LOB - Package ist im Schema SYS. Für dieses Package gibt es aber ein PUBLIC Synonym, somit müsstest du es mit jedem User einfach mittels "DBMS_LOB" ansprechen können. Blobs sind sicher der einfachste Weg sowas zu machen. Ausserdem sind die schneller und flexibler als Long´s. Intermediatext ist eine zusätzliche Software von Oracle, die am Server installiert werden muss (Informationen dazu findest du sicher im Internet). Die Investition in eine solche Software und der damit verbundene Aufwand steht IMHO in keinem Verhältnis zu deinem eher einfachen Problem. |
Re: Suchen in Oracle!!!
Hallo Garby.
Ich habe jetzt mein Attribut zu einem Blob-Datentyp geändert. Wenn ich jetzt den String mit deinem Vorschlag im PL/SQL Developer suche, habe ich die Fehlermeldung: ORA-01465: Ungültige Hexadezimalzahl Weisst Du vielleicht, woran das liegen könnte? Folgenden SQL-Befehl habe ich verwendet:
SQL-Code:
Danke im Voraus.
select * from bemerk_draw01
where dbms_lob.instr(bemerkung, 'Frank') > 0 Gruss Samson |
Re: Suchen in Oracle!!!
Benutze einfach CLOB nicht BLOB. Ich glaube BLOB ist binary.
Habe gerade eine Tabelle erstellt und deinen SQL-Code verwendet - hat gefunzt :thuimb: |
Re: Suchen in Oracle!!!
Hallo,
danke an alle die geholfen haben. Es funktioniert jetzt. :cheers: Gruss Samson |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz