sql >> Databáze >  >> RDS >> Oracle

desetinné (s,p) nebo číslo (s,p)?

V Oracle jsou stejné:

Příkazy SQL, které vytvářejí tabulky a clustery, mohou také používat datové typy a datové typy ANSI z produktů IBM SQL/DS a DB2. Oracle rozpozná název datového typu ANSI nebo IBM, který se liší od názvu datového typu OracleDatabase. Převádí datový typ na datový typ ekvivalentníOracle, zaznamenává datový typ Oracle jako název datového typu sloupce a ukládá data sloupce do datového typu Oracle na základě převodů uvedených v následujících tabulkách.

Tabulka pod tímto citátem ukazuje, že DECIMAL(p,s) je interně považováno za NUMBER(p,s) :

SQL> create table t (a decimal(*,5), b number (*, 5));

Table created

SQL> desc t;
Name Type        Nullable Default Comments 
---- ----------- -------- ------- -------- 
A    NUMBER(*,5) Y                         
B    NUMBER(*,5) Y  

Měřítko je však standardně nastaveno na 0 pro DECIMAL , což znamená, že DECIMAL(*) se zachází jako NUMBER(*, 0) , tj. INTEGER :

SQL> create table t (a decimal, b number, c decimal (5), d decimal (5));

Table created

SQL> desc t;
Name Type      Nullable Default Comments 
---- --------- -------- ------- -------- 
A    INTEGER   Y                         
B    NUMBER    Y                         
C    NUMBER(5) Y                         
D    NUMBER(5) Y   


  1. Tabulky a indexy vs. HDD a SSD

  2. Proč se výsledky z dotazu SQL nevracejí v očekávaném pořadí?

  3. Zobrazit všechny dotazy přicházející do databáze Oracle

  4. Skupina SQL Server podle počtu DateTime za hodinu?