sql >> Database teknologi >  >> RDS >> Oracle

Hvordan gør man oracle-tabelnavne ufølsomme for store og små bogstaver?

[TL;DR] Den enkleste ting at gøre er aldrig at bruge dobbelte anførselstegn omkring objektnavne og bare lade Oracle styre følsomheden af ​​store og små bogstaver på dens standardmåde.

Oracle-databaser er som standard store og små bogstaver; de vil dog også som standard konvertere alt til store bogstaver, så følsomheden over for store og små bogstaver abstraheres fra dig, brugeren.

CREATE TABLE tEsT ( column_name NUMBER );

Så:

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

Vil alle give det samme output og:

SELECT * FROM USER_TABLES;

Udgange:

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

(Bemærk, at tabelnavnet står med store bogstaver).

Hvis du bruger dobbelte anførselstegn, vil Oracle respektere din brug af kasus i tabelnavnet:

CREATE TABLE "tEsT" ( column_name NUMBER );

og:

SELECT * FROM USER_TABLES;

Udgange:

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

(Bemærk:der er nu to tabeller med navnet TEST og tEsT og Oracle har respekteret følsomheden af ​​store og små bogstaver i den anden - den, der er oprettet med anførselstegn).

(Bemærk også:SELECT * FROM tEsT vil vælge fra den første tabel, som er blevet konverteret til store bogstaver, men SELECT * FROM "tEsT" er forpligtet til at vælge fra den anden, selvom forespørgslerne er identiske bortset fra anførselstegnene).




  1. Få hver time for et tidsinterval

  2. Sådan gemmer og henter du PictureBox-billede til SQL Server Database Varbinary(Max) Column VB.NET

  3. Hvordan løser jeg en mysql Thread Stack Overrun?

  4. SQL Server 2012 forespørger Access 2007-data ved hjælp af OPENROWSET-fejl