Quelle est la longueur maximale d’un nom de table dans Oracle?

Quelle est la longueur maximale d’un nom de table et d’un nom de colonne dans Oracle?

Dans Oracle 12.2 et ci-dessus, la longueur maximale du nom d’object est de 128 octets.

Dans Oracle 12.1 et ci-dessous, la longueur maximale du nom d’object est de 30 octets.

Apprendre à un homme à pêcher

Notez le type de données et la taille

>describe all_tab_columns VIEW all_tab_columns Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) TABLE_NAME NOT NULL VARCHAR2(30) COLUMN_NAME NOT NULL VARCHAR2(30) DATA_TYPE VARCHAR2(106) DATA_TYPE_MOD VARCHAR2(3) DATA_TYPE_OWNER VARCHAR2(30) DATA_LENGTH NOT NULL NUMBER DATA_PRECISION NUMBER DATA_SCALE NUMBER NULLABLE VARCHAR2(1) COLUMN_ID NUMBER DEFAULT_LENGTH NUMBER DATA_DEFAULT LONG NUM_DISTINCT NUMBER LOW_VALUE RAW(32) HIGH_VALUE RAW(32) DENSITY NUMBER NUM_NULLS NUMBER NUM_BUCKETS NUMBER LAST_ANALYZED DATE SAMPLE_SIZE NUMBER CHARACTER_SET_NAME VARCHAR2(44) CHAR_COL_DECL_LENGTH NUMBER GLOBAL_STATS VARCHAR2(3) USER_STATS VARCHAR2(3) AVG_COL_LEN NUMBER CHAR_LENGTH NUMBER CHAR_USED VARCHAR2(1) V80_FMT_IMAGE VARCHAR2(3) DATA_UPGRADED VARCHAR2(3) HISTOGRAM VARCHAR2(15) 

DESCRIBE all_tab_columns

affichera un TABLE_NAME VARCHAR2 (30)

Remarque VARCHAR2 (30) signifie une limitation de 30 octets, pas une limitation de 30 caractères, et peut donc être différente si votre firebase database est configurée / configurée pour utiliser un jeu de caractères multi-octets.

Mike

Bien, mais tant que vous utilisez des caractères ASCII, même un jeu de caractères multi-octets limitera exactement 30 caractères … donc, à moins que vous ne vouliez mettre des coeurs et des chats souriants dans votre firebase database, votre …

30 caractères (octets, vraiment, comme cela a été indiqué).

Mais ne me fais pas confiance; essayez ceci par vous-même:

 SQL> create table a23545678901234567890123456789 (my_id number); Table created. SQL> create table a235456789012345678901234567890(my_id number); ERROR at line 1: ORA-00972: identifier is too long 

Mis à jour: comme indiqué ci-dessus, dans Oracle 12.2 et versions ultérieures, la longueur maximale du nom d’object est désormais de 128 octets.

Les règles de dénomination de l’object schéma peuvent également être utiles:

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements008.htm#sthref723

Sur Oracle 12.2 , vous pouvez utiliser la constante ORA_MAX_NAME_LEN , ORA_MAX_NAME_LEN , définie sur 128 octets (conformément à 12.2). Avant Oracle 12.1 la taille maximale était de 30 octets.

Dans la firebase database de 10g à laquelle je fais face, je sais que les noms de tables ont un maximum de 30 caractères. Impossible de vous dire quelle est la longueur du nom de la colonne (mais je sais que c’est plus de 30).

La longueur maximale des noms d’object de firebase database Oracle est de 30 octets .

Règles de nom d’object: http://docs.oracle.com/database/121/SQLRF/sql_elements008.htm

La taille maximale du nom est de 30 caractères à cause du dictionnaire de données qui ne permet le stockage que pour 30 octets

Je travaille sur Oracle 12c 12.1. Cependant, cela ne semble pas autoriser plus de 30 caractères pour les noms de colonnes / tables.

Lisez une page Oracle qui mentionne 30 octets. https://docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF00223

En 12c, bien que les colonnes all_tab_columns indiquent VARCHAR2 (128) pour Table_Name, elles n’autorisent pas plus de 30 octets.

J’ai trouvé un autre article sur la 12c R2, qui semble autoriser jusqu’à 128 caractères. https://community.oracle.com/ideas/3338

La longueur maximale du nom de la table et de la colonne est de 128 octets ou 128 caractères. Cette limite concerne l’utilisation des utilisateurs de la firebase database sybase. J’ai vérifié cette réponse de manière approfondie, de sorte que j’ai posté cette réponse en toute confiance.