Oracle
 sql >> база данни >  >> RDS >> Oracle

десетична(s,p) или число(s,p)?

В Oracle те са едни и същи:

SQL изразите, които създават таблици и клъстери, могат също да използват ANSI типове данни и типове данни от продуктите на IBM SQL/DS и DB2. Oracle разпознава името на типа данни ANSI или IBM, което се различава от името на типа данни на OracleDatabase. Той преобразува типа данни в еквивалентния тип данни на Oracle, записва типа данни на Oracle като име на типа данни на колоната и съхранява данните на колоната в типа данни на Oracle въз основа на преобразуванията, показани в следващите таблици.

Таблицата под този цитат показва, че DECIMAL(p,s) се третира вътрешно като 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  

Въпреки това, скалата по подразбиране е 0 за DECIMAL , което означава, че DECIMAL(*) се третира като NUMBER(*, 0) , т.е. 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да вмъкнете данни директно от Excel в базата данни на Oracle

  2. Извличане на типа таблица на Oracle от съхранената процедура с помощта на JDBC

  3. Повтаряне на редове въз основа на стойността на колоната във всеки ред

  4. Как мога да изпълня собствен SQL скрипт в JPA/Hibernate?

  5. Параметризирана заявка в проблем с Oracle