Sólo especifique una longitud de 8 y una precisión de 0. gusta esta
SQL> create table t8 (col1 number(8,0))
2/
Table created.
SQL> insert into t8 values (12345678)
2/
1 row created.
SQL> insert into t8 values (123456789)
2/
insert into t8 values (123456789)
*
ERROR at line 1:
ORA-01438: value larger than specified precision allowed for this column
SQL>
Para hacer cumplir una longitud exacta (todos los números deben ser de ocho dígitos de longitud) que tendrá que utilizar una restricción CHECK:
SQL> alter table t8
2 add constraint t8_ck check (length(col1) = 8)
3/
Table altered.
SQL> insert into t8 values (1234567)
2/
insert into t8 values (1234567)
*
ERROR at line 1:
ORA-02290: check constraint (APC.T8_CK) violated
SQL>
qué quiere 00000001 a ser almacenados como 00000001 o 1, por ej. ¿Es este número de 8 dígitos una longitud fija independientemente? – Andrew
Para completar, ¿es -12345678 un número aceptable de ocho dígitos en su caso? – pilcrow
sí, quiero que 000000001 se almacene como 00000001, NO 1, porque quiero un número de 8 dígitos, ¡exactamente 8! – MengT