Heim >Datenbank >MySQL-Tutorial >Wie wirken sich Anführungszeichen auf Tabellennamen in Oracle aus?

Wie wirken sich Anführungszeichen auf Tabellennamen in Oracle aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-14 22:18:44949Durchsuche

How Do Quotation Marks Affect Table Names in Oracle?

Oracle-Tabellennamen: Die Bedeutung von Anführungszeichen

Eine häufige Frage bei der Oracle-Datenbankverwaltung betrifft die Verwendung doppelter Anführungszeichen um Tabellennamen. Auch wenn es scheinbar einfach ist, ist das Verständnis ihrer Funktion entscheidend, um häufige Fehler zu vermeiden.

Das Standardverhalten von Oracle ist die Verarbeitung von Bezeichnern ohne Berücksichtigung der Groß-/Kleinschreibung. Das bedeutet, dass MyTable, mytable und MYTABLE alle als dieselbe Tabelle behandelt werden. Dies ändert sich jedoch, wenn ein Tabellenname in doppelte Anführungszeichen gesetzt wird.

Doppelte Anführungszeichen erzwingen die Berücksichtigung der Groß- und Kleinschreibung. "MyTable" unterscheidet sich von "mytable" oder "MYTABLE". Wenn die Tabelle mit Anführungszeichen erstellt wird, muss sie mit genau derselben Groß-/Kleinschreibung und denselben Anführungszeichen referenziert werden.

Betrachten Sie diese Beispiele:

<code class="language-sql">SELECT * FROM mytable WHERE id = 1; -- Works (case-insensitive)</code>

Diese Abfrage ist aufgrund des standardmäßigen Oracle-Abgleichs ohne Berücksichtigung der Groß- und Kleinschreibung erfolgreich. Aber das schlägt fehl:

<code class="language-sql">SELECT * FROM "mytable" WHERE id = 1; -- Fails (case-sensitive)</code>

Dieser Fehler tritt auf, weil "mytable" als Groß-/Kleinschreibung beachtet definiert wurde. Die Abfrage benötigt die genaue Groß- und Kleinschreibung und Anführungszeichen.

Oracle verwendet intern Vergleiche, bei denen die Groß-/Kleinschreibung beachtet wird, aber Bezeichner ohne Anführungszeichen werden vor dem Vergleich in Großbuchstaben geschrieben. Durch Zitieren wird dies umgangen.

Erstellen einer Tabelle mit Anführungszeichen:

<code class="language-sql">CREATE TABLE "my_data"(col1 NUMBER, col2 VARCHAR2(255));</code>

Diese Abfragen sind gültig:

<code class="language-sql">SELECT * FROM "my_data";
SELECT * FROM "MY_DATA";
SELECT * FROM "My_Data";</code>

Dies wird jedoch scheitern:

<code class="language-sql">SELECT * FROM my_data;</code>

Umgekehrt erstellen Sie eine Tabelle ohne Anführungszeichen:

<code class="language-sql">CREATE TABLE my_other_data(col1 NUMBER, col2 VARCHAR2(255));</code>

Diese Abfragen sind alle falsch:

<code class="language-sql">SELECT * FROM My_Other_Data;
SELECT * FROM "my_other_data";
SELECT * FROM "MY_OTHER_DATA";</code>

Nur ​​das funktioniert:

<code class="language-sql">SELECT * FROM my_other_data;</code>

Die Beherrschung des Unterschieds zwischen Bezeichnern, bei denen die Groß-/Kleinschreibung beachtet wird (in Anführungszeichen gesetzt) ​​und der Bezeichner, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird (ohne Anführungszeichen), und die Rolle doppelter Anführungszeichen ist für eine effektive Oracle-Datenbankverwaltung und das Schreiben von Abfragen von entscheidender Bedeutung.

Das obige ist der detaillierte Inhalt vonWie wirken sich Anführungszeichen auf Tabellennamen in Oracle aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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