sql >> データベース >  >> RDS >> Oracle

10進数(s、p)または数値(s、p)?

    Oracleでは、これらは同じです:

    テーブルとクラスターを作成するSQLステートメントは、ANSIデータ型とIBM製品SQL/DSおよびDB2のデータ型を使用することもできます。 Oracleは、OracleDatabaseデータ型名とは異なるANSIまたはIBMデータ型名を認識します。データ型を同等の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  
    

    ただし、DECIMALのスケールのデフォルトは0です。 、つまり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. IntelXeonスケーラブルプロセッサとSQLServer2017

    2. OracleParameterおよびIN句

    3. ETLプロセスでのPythonとMySQLの使用

    4. Oracleの最後の行をテーブルに取得する方法