Heim >Datenbank >MySQL-Tutorial >Wie kann ich in Oracle eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchführen?
Erzielung von Groß- und Kleinschreibung bei der Suche in Oracle-Datenbanken
Bei den Standardvergleichsoperatoren von Oracle (=, LIKE) wird die Groß-/Kleinschreibung beachtet. In diesem Leitfaden werden verschiedene Techniken zur effektiven Durchführung von Suchvorgängen beschrieben, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird.
Methode 1: Fallkonvertierungsfunktionen
Konvertieren Sie sowohl die Spaltendaten als auch die Suchzeichenfolge mit UPPER()
oder LOWER()
:
<code class="language-sql">SELECT * FROM my_table WHERE UPPER(column_1) = UPPER('my_string');</code>
Für eine optimale Leistung erstellen Sie einen funktionsbasierten Index für die konvertierte Spalte:
<code class="language-sql">CREATE INDEX my_index ON my_table (LOWER(column_1));</code>
Methode 2: Reguläre Ausdrücke
Oracle 10g und spätere Versionen bieten REGEXP_LIKE()
mit dem „i“-Flag für den Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung:
<code class="language-sql">SELECT * FROM my_table WHERE REGEXP_LIKE(column_1, '^my_string$', 'i');</code>
Denken Sie daran, Anker für den Anfang der Zeichenfolge (^
) und das Ende der Zeichenfolge ($
) für exakte Übereinstimmungen einzuschließen.
Methode 3: Anpassung der Sitzungsparameter
Durch das Anpassen der Sitzungsparameter NLS_SORT
und NLS_COMP
wird die Groß-/Kleinschreibung für alle Vergleiche innerhalb dieser Sitzung global geändert:
<code class="language-sql">ALTER SESSION SET NLS_SORT = BINARY_CI; ALTER SESSION SET NLS_COMP = LINGUISTIC;</code>
Um die Leistung weiter zu verbessern, sollten Sie einen Sprachindex in Betracht ziehen:
<code class="language-sql">CREATE INDEX my_linguistic_index ON my_table (NLSSORT(column_1, 'NLS_SORT = BINARY_CI'));</code>
Der beste Ansatz hängt von Ihren spezifischen Bedürfnissen ab. Eine effektive Indizierung ist jedoch für die Aufrechterhaltung der Abfrageleistung in allen Szenarien von entscheidender Bedeutung.
Das obige ist der detaillierte Inhalt vonWie kann ich in Oracle eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!