AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suchen in Oracle!!!

Ein Thema von samson · begonnen am 27. Nov 2003 · letzter Beitrag vom 28. Nov 2003
Antwort Antwort
Benutzerbild von samson
samson

Registriert seit: 26. Aug 2003
Ort: Hövelhof Riege
105 Beiträge
 
Delphi 2007 Professional
 
#1

Suchen in Oracle!!!

  Alt 27. Nov 2003, 13:54
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
Frank Gellermann
Wer Informationen hat, hat Macht. Wer Macht hat, hat Informationen!!!
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Suchen in Oracle!!!

  Alt 27. Nov 2003, 14:16
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
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Benutzerbild von samson
samson

Registriert seit: 26. Aug 2003
Ort: Hövelhof Riege
105 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Suchen in Oracle!!!

  Alt 27. Nov 2003, 14:43
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
Frank Gellermann
Wer Informationen hat, hat Macht. Wer Macht hat, hat Informationen!!!
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Suchen in Oracle!!!

  Alt 27. Nov 2003, 14:59
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.
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
Benutzerbild von samson
samson

Registriert seit: 26. Aug 2003
Ort: Hövelhof Riege
105 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Suchen in Oracle!!!

  Alt 27. Nov 2003, 16:48
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:
select * from bemerk_draw01
where dbms_lob.instr(bemerkung, 'Frank') > 0
Danke im Voraus.

Gruss

Samson
Frank Gellermann
Wer Informationen hat, hat Macht. Wer Macht hat, hat Informationen!!!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Suchen in Oracle!!!

  Alt 27. Nov 2003, 17:18
Benutze einfach CLOB nicht BLOB. Ich glaube BLOB ist binary.

Habe gerade eine Tabelle erstellt und deinen SQL-Code verwendet - hat gefunzt
  Mit Zitat antworten Zitat
Benutzerbild von samson
samson

Registriert seit: 26. Aug 2003
Ort: Hövelhof Riege
105 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Suchen in Oracle!!!

  Alt 28. Nov 2003, 09:15
Hallo,

danke an alle die geholfen haben. Es funktioniert jetzt.



Gruss

Samson
Frank Gellermann
Wer Informationen hat, hat Macht. Wer Macht hat, hat Informationen!!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz