2012-11-12 2 views
6

Come posso creare una tabella con oracle ma con caratteri piccoli, quando creo una tabella con caratteri piccoli converte automaticamente i caratteri maiuscoli.Come posso creare una tabella con oracle ma con caratteri piccoli?

+0

cosa vuoi fare? darci maggiori informazioni per favore – semTex

+0

Il record viene convertito in lettere maiuscole o le colonne della tabella vengono convertite in lettere maiuscole minuscole? – user75ponic

+0

quando eseguo questa query "create table t ( un numero, b VARCHAR2 (10) )" – user1384279

risposta

17

I nomi delle tabelle (non quotati) in lettere maiuscole sono richiesti dallo standard ANSI SQL.

È può creare tabelle (e colonne) con nomi minuscoli che utilizzano un identificatore citato (anche questo segue lo standard SQL):

CREATE TABLE "foo" 
(
    "id"   integer, 
    "SomeColumn" varchar(100) 
); 

Vorrei però vivamente di non fare quella.

Una volta che avete le tabelle create in questo modo, si ha sempre virgolette usare perché qualsiasi nome non citato sarà (seguendo le regole per gli identificatori di SQL) sarà di nuovo piegato per maiuscole e quindi ha vinto' t corrisponde al nome così come è memorizzato nei cataloghi di sistema.

Perciò la seguente dichiarazione sarà non lavoro:

SELECT id, somecolumn FROM foo; 

Devi usare un identificatore quotato:

SELECT "id", "SomeColumn" FROM "foo"; 

Per maggiori dettagli su identificatori (quotate), si prega di leggere il manuale: http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements008.htm#i27561

+0

Ottima spiegazione + 1 – user75ponic

+1

concordato con un cavallo senza nome "Ho visto e ho dovuto eseguire il debug del codice di produzione che usava questo, in quanto i ragazzi che hanno scritto l'app erano sviluppatori Java che per qualche ragione AMANO usando la tabella e la colonna del case cammello nomi, poiché è così che digitano gli identificatori in Java. è un incubo assoluto mantenerlo in oracolo. hai quasi voglia di lanciare la tastiera attraverso il monitor quando vedi centinaia di viste che contengono colonne maiuscole + nomi di viste e ti viene chiesto di regolare alcuni sql contro di loro. – DazzaL

0

Racchiudere il nome della tabella tra virgolette ("). Anche creare la vostra tabella come questa

create table "t" (a number, b varchar2(10)); 

Ora il vostro nome della tabella è t in minuscolo. Devi sempre usare le virgolette quando accedi al tuo tavolo. Ad esempio

select * from "t"; 

È possibile utilizzare lo stesso costrutto per altri oggetti (colonne, indici, ...).

In ogni caso, SQL non fa distinzione tra maiuscole e minuscole, è necessario un buon motivo per utilizzare nomi di oggetti dipendenti dal caso.