sql name Nome della colonna della tabella Oracle con spazio




rename table sql (5)

È possibile, ma non è consigliabile. È necessario racchiudere il nome della colonna tra virgolette.

create table my_table ("MY COLUMN" number);

Ma nota l'avvertenza nella documentazione :

Nota : Oracle sconsiglia di utilizzare gli identificatori citati per i nomi degli oggetti del database. Questi identificatori citati sono accettati da SQL * Plus, ma potrebbero non essere validi quando si utilizzano altri strumenti che gestiscono oggetti di database.

Il nome sarà sensibile al maiuscolo / minuscolo e dovrai racchiudere il nome tra virgolette ogni volta che lo fai riferimento:

select "MY COLUMN" from my_table;

Quindi ... no, sarebbe il mio consiglio ...

È possibile creare una tabella con il nome della colonna che contiene lo spazio? In tal caso, come posso creare e usarlo?


Questa è la regola delle colonne definita per Oracle

Colonne (per tabelle)

  1. Tutte le colonne sono in forma {alias} _ {nome_colonna}. Ad esempio, prs_id, prs_name, prs_adr_id, adr_street_name. Ciò garantisce che i nomi delle colonne siano univoci in uno schema, ad eccezione delle colonne denormalizzate di un'altra tabella, che vengono popolate utilizzando i trigger o la logica dell'applicazione.
    1. Tutte le colonne sono in singolare. Se pensi di aver bisogno di un nome di colonna al plurale, pensa due volte se è il design giusto? Di solito significa che stai includendo più valori nella stessa colonna e che dovrebbe essere evitato.
    2. Tutte le tabelle hanno una colonna chiave surrogata nella forma {alias} _id, che è la prima colonna della tabella. Ad esempio, prs_id, mat_id, adr_id.

puoi sempre avere un alias per il nome della colonna bu usando ""


Hai Google per questo? Ho fatto - il sesto collegamento era this , in cui trovo quanto segue:

create table employee (
   "First Name" varchar2(20),
   "Last Name" varchar2(20),
   Address varchar2(60),
   Phone varchar2(15),
   Salary number,
   EmpID number,
   DeptID number
); 

... che funziona bene quando l'ho provato in 10g.


È possibile (vedere il documento Oracle ) se si cita questi in modo appropriato. Tuttavia, sospetto che non sia una buona idea, dal momento che dovrai citare tutto. Generalmente gli standard / convenzioni di denominazione di db (ad es. here o here ) favoriscono l'utilizzo di underscore (che non richiedono quoting) su spazi bianchi.


è possibile nominando la colonna tra due " esempi:" My columN ", il nome della colonna diventa case sensitive che significa.

SELECT "my column" from table; --NOT OK
SELECT "My columN" from table; --OK




oracle