sql >> Database >  >> RDS >> Oracle

Hoe orakeltabelnamen hoofdletterongevoelig te maken?

[TL;DR] Het eenvoudigste om te doen is om nooit dubbele aanhalingstekens rond objectnamen te gebruiken en Oracle de hoofdlettergevoeligheid op de standaardmanier te laten beheren.

Oracle-databases zijn standaard hoofdlettergevoelig; ze zullen echter ook standaard alles naar hoofdletters converteren, zodat de hoofdlettergevoeligheid van u, de gebruiker, wordt geabstraheerd.

CREATE TABLE tEsT ( column_name NUMBER );

Dan:

SELECT COUNT(*) FROM test;
SELECT COUNT(*) FROM Test;
SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM tEsT;

Zal allemaal dezelfde output geven en:

SELECT * FROM USER_TABLES;

Uitgangen:

TABLE_NAME
----------
TEST 

(Let op:de tabelnaam is in hoofdletters).

Als u dubbele aanhalingstekens gebruikt, respecteert Oracle uw gebruik van hoofdletters in de tabelnaam:

CREATE TABLE "tEsT" ( column_name NUMBER );

en:

SELECT * FROM USER_TABLES;

Uitgangen:

TABLE_NAME
----------
TEST 
tEsT

(Opmerking:er zijn nu twee tabellen met de naam TEST en tEsT en Oracle heeft de hoofdlettergevoeligheid van de tweede gerespecteerd - degene die met aanhalingstekens is gemaakt).

(Let ook op:SELECT * FROM tEsT selecteert uit de eerste tabel, die is omgezet naar hoofdletters, maar SELECT * FROM "tEsT" is vereist om uit de tweede te selecteren, ook al zijn de zoekopdrachten identiek, behalve de aanhalingstekens).




  1. rij selecteren uit mysql als id overeenkomt

  2. Upload meerdere bestanden naar de server waarbij php niet alle bestanden naar de server uploadt

  3. Wachtwoord wijzigen met Oracle SQL Developer

  4. Externe toegang verlenen tot een enkele MySQL-database