Was ist der beste Weg, um suchen Sie die Long-Datentyp innerhalb einer Oracle-Datenbank?
Ich arbeite mit einer Oracle-Datenbank gespeichert HTML-Code als ein Long-Datentyp. Ich möchte die Abfrage der Datenbank nach einem bestimmten string in der HTML-Daten, gespeichert in der Lange.
Habe ich versucht, "select * from TABELLE where SPALTE like '%Format%'". Dies bewirkt, dass die folgende Oracle-Fehlermeldung, da "wie" wird nicht unterstützt Long-Datentypen.
ORA-00932: inkonsistente Datentypen: expected NUMBER got LONG
InformationsquelleAutor | 2009-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dieses Beispiel verwenden, ohne die Verwendung von temp-Tabelle:
Gibt es natürlich ein problem, wenn LANGE mehr als 32K Zeichen.
InformationsquelleAutor Martin Selecký
Kann man nicht suchen, Sehnt sich danach direkt. LONGs können nicht Sie erscheinen in der WHERE-Klausel. Sie können in der Auswahlliste angezeigt werden, obwohl, so können Sie verwenden, um einzugrenzen, die Anzahl der Zeilen, die Sie haben würden, zu untersuchen.
Oracle hat empfohlen, die Umwandlung Sehnt CLOBs zumindest in den letzten 2 Versionen. Gibt es weniger Einschränkungen auf CLOBs.
Gleiche mit DBA_IND_EXPRESSIONS. Wenn Sie es beschreiben, SPALTENAUSDRUCK ist noch ein langer Typ in 11GR2.
Ich Wünsche Oracle beheben würde das Wörterbuch von LONG-Spalten zu, aber angesichts der Größe und Komplexität des data dictionary, vermute ich, dass die Aktualisierung alle LONGs, CLOB wäre eine riesige übung, würde die Gefahr der Korruption bei upgrades und so hat Oracle bisher beschlossen, es allein zu lassen.
Wenn Sie sich für den text der Auslöser, Sie haben die Möglichkeit, mit DBA_SOURCE, USER_SOURCE oder ALL_SOURCE statt.
InformationsquelleAutor Arnshea
Beispiel:
Aber vorsichtig sein. Ein PL/SQL-Funktion werden nur die ersten 32 Kb der LANGE.
forums.oracle.com/forums/thread.jspa?threadID=413669#1418208
was bedeutet rowid=r bedeutet. Ich meine hier "wählen Sie text in temporary_varchar von longtable where rowid=r;"
InformationsquelleAutor Thomas Aregger
Zuerst konvertieren
LONG
Spalte Typ zuCLOB
geben Sie dann verwendenLIKE
Zustand, zum Beispiel:InformationsquelleAutor nikli
Nicht verwenden Sehnt, verwenden CLOB statt. Sie können den index und die Suche CLOBs wie VARCHAR2.
Zusätzlich Abfragen mit eine führende Platzhalterzeichen(%) wird IMMER ein full-table-scan. Schauen Sie in Oracle Text-Indizes statt.
InformationsquelleAutor Neil Kodner