1
resposta

Dúvida referente ao campo "Percentual"

Eu gostaria de tirar a seguinte dúvida:

1 - O comando que usei pra criar a tabela de vendedor foi:

CREATE TABLE TABELA_DE_VENDEDORES(
MATRICULA VARCHAR2(20),
NOME VARCHAR2(100),
PERCENTUAL_COMISSAO FLOAT;

Porém, eu vi que também daria para adicionar como:

PERCENTUAL_COMISSAO DECIMAL(10,2)

Eu gostaria de saber o seguinte:

1 - No SQLDeveloper ao escrever "Float" ele já sugere (5) ExemploCaso deixar o campo FLOAT sem o (5), isso significa que ele ficara sem tamanho, aceitando qualquer quantidade?

1 resposta

Fernando.

Oracle armazena os números sempre como NUMBER, mas tem diversos subtipos numéricos. Se quiser saber mais entre na documentação. https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html#GUID-7B72E154-677A-4342-A1EA-C74C1EA928E6

Com relação ao FLOAT, é também subtipo de NUMBER, e pode armazenar valores fracionados. Contudo, se for informado FLOAT(5) ele vai trabalhar com precisão de 5. Na prática ele vai conseguir armazenar valores com mais de 5 dígitos, mas pode truncar os valores e ficar fora do esperado.

segue um exemplo, se quiser testar.

create table t1 (id number(1), vend float(5), flot_vend float);
desc t1

insert into t1 values( 1, 5655525.090988, 5655525.090988 );
insert into t1 values( 2, 565552.090988, 565552.090988);
insert into t1 values( 3, 56555.090988, 5655.090988);
insert into t1 values( 4, 5655.090988, 5655.090988);
insert into t1 values( 5, 565.090988, 565.090988);
insert into t1 values( 6, 56.090988, 56.090988);
insert into t1 values( 7, 5.090988, 5.090988);

select * from t1;