Heim > Datenbank > MySQL-Tutorial > Wie kann ich in Oracle eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchführen?

Wie kann ich in Oracle eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchführen?

Susan Sarandon
Freigeben: 2025-01-17 11:27:13
Original
147 Leute haben es durchsucht

How Can I Perform Case-Insensitive Searches in Oracle?

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():

in Groß- oder Kleinbuchstaben
<code class="language-sql">SELECT * FROM my_table WHERE UPPER(column_1) = UPPER('my_string');</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage