with ver trasponer transponer tablas tabla funcion comentarios oracle name-length

ver - trasponer en oracle



¿Cuál es la longitud máxima de un nombre de tabla en Oracle? (12)

Enseña a un hombre a pescar

Observe el tipo de datos y el tamaño

>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)

¿Cuál es la longitud máxima de un nombre de tabla y columna en Oracle?


30 char (bytes, realmente, como se ha dicho).

Pero no confíes en mí; prueba esto por ti mismo:

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


Correcto, pero siempre que uses caracteres ASCII, incluso un juego de caracteres multibyte aún daría una limitación de exactamente 30 caracteres ... así que a menos que quieras poner corazones y gatos sonrientes en tu nombre, DB te parece bien ...


DESCRIBIR all_tab_columns

mostrará un TABLE_NAME VARCHAR2 (30)

Nota VARCHAR2 (30) significa una limitación de 30 bytes, no una limitación de 30 caracteres, y por lo tanto puede ser diferente si su base de datos está configurada / configurada para usar un juego de caracteres multibyte.

Micro


El tamaño máximo del nombre es de 30 caracteres debido al diccionario de datos que permite el almacenamiento solo para 30 bytes


En Oracle 12.2 , puede usar la constante ORA_MAX_NAME_LEN , ORA_MAX_NAME_LEN , establecida en 128 bytes (como en 12.2). Antes de Oracle 12.1 tamaño máximo era de 30 bytes.


En Oracle 12.2 y superior, la longitud máxima del nombre del objeto es de 128 bytes.

En Oracle 12.1 y debajo, la longitud máxima del nombre del objeto es de 30 bytes.


En la base de datos 10g con la que estoy tratando, sé que los nombres de las tablas tienen un máximo de 30 caracteres. No pude decirle cuál es la longitud del nombre de la columna (pero sé que es> 30).


Estoy trabajando en Oracle 12c 12.1. Sin embargo, no parece que permita más de 30 caracteres para los nombres de columna / tabla.

Lea a través de una página de Oracle que menciona 30 bytes. https://docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF00223

En 12c, aunque all_tab_columns dice VARCHAR2 (128) para Table_Name, no permite más de 30 bytes de nombre.

Encontré otro artículo sobre 12c R2, que parece permitir esto hasta 128 caracteres. https://community.oracle.com/ideas/3338


La longitud máxima de la tabla y el nombre de la columna es de 128 bytes o 128 caracteres. Este límite es para usar usuarios de la base de datos de sybase. Verifiqué esta respuesta a fondo, de modo que publiqué esta respuesta con confianza.