2012-06-25 6 views
10

Eventuali duplicati:
Why are Oracle table/column/index names limited to 30 characters?Perché esiste una lunghezza massima per i nomi di stored procedure?

Quando si scrive una stored procedure in Oracle, ho scelto un nome particolarmente descrittiva, e quando si tenta di aggiornare lo script mi ​​è stato informato il nome era troppo lungo .

37 15 PLS-00114: identifier 'blah_blah_blah_blah_blah_blah' too long 

Perché esiste un limite così restrittivo per i nomi dei processi memorizzati? È solo specifico per Oracle o è comune in altri sistemi db?


Ci scusiamo per i duplicate

+0

In SQL Server è '128' caratteri in quanto è la lunghezza massima per un' sysname' (il tipo di dati utilizzato nelle tabelle di base del sistema) –

+0

Questo è molto meglio di 30 in Oracle, come ho scoperto rapidamente. – JWiley

+1

Perché Oracle viene dai giorni in cui 30 personaggi erano considerati più che sufficienti! Dopo tutto, con nomi di file di 8 caratteri, 30 sono una tonnellata! –

risposta

1

la sua realtà 30 personaggi solo in Oracle.

Ogni lingua/db ha un limite di lunghezza durante la definizione dei nomi poiché il nome di ogni oggetto creato in DB è memorizzato nelle tabelle di sistema e ogni colonna ha una lunghezza fissa.

Per prestazioni, manteniamo i nomi brevi in ​​caso di DB.

+8

hmm come fa questa risposta * Perché c'è un limite così restrittiva! su nomi proc memorizzati? * –

+0

Come questo si apre anche a MySQL - per MySQL 5.7 (e probabilmente molte altre versioni) è 64 - manual - https://dev.mysql.com/doc/refman/5.7/en/identifiers .html –

+1

@ConradFrix Ho menzionato che tutte le informazioni sugli oggetti db sono memorizzate nelle tabelle di sistema. Le tabelle hanno una colonna e hanno una dimensione definita, quindi restringono la lunghezza del contenuto da memorizzare. –

Problemi correlati