What is the default Precision and Scale for a Number in Oracle?

前端 未结 6 663
时光说笑
时光说笑 2020-12-01 07:13

When creating a column of type NUMBER in Oracle, you have the option of not specifying a precision or scale. What do these default do if you don\'t specify them?

6条回答
  •  难免孤独
    2020-12-01 07:47

    I expand on spectra‘s answer so people don’t have to try it for themselves.

    This was done on Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production.

    CREATE TABLE CUSTOMERS
    (
      CUSTOMER_ID NUMBER NOT NULL,
      FOO FLOAT NOT NULL,
      JOIN_DATE DATE NOT NULL,
      CUSTOMER_STATUS VARCHAR2(8) NOT NULL,
      CUSTOMER_NAME VARCHAR2(20) NOT NULL,
      CREDITRATING VARCHAR2(10)
    );
    
    select column_name, data_type, nullable, data_length, data_precision, data_scale
    from user_tab_columns where table_name ='CUSTOMERS'; 
    

    Which yields

    COLUMN_NAME      DATA_TYPE  NULLABLE DATA_LENGTH DATA_PRECISION DATA_SCALE
    CUSTOMER_ID      NUMBER     N        22        
    FOO              FLOAT      N        22          126    
    JOIN_DATE        DATE       N        7        
    CUSTOMER_STATUS  VARCHAR2   N        8        
    CUSTOMER_NAME    VARCHAR2   N        20        
    CREDITRATING     VARCHAR2   Y        10    
    

提交回复
热议问题