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

OracleのLOG()関数

    Oracleでは、LOG() 関数は対数、ベース n2を返します n1 、ここで n2 は最初の引数であり、 n1 2番目です。

    構文

    構文は次のようになります:

    LOG(n2, n1)

    n2の場所 0以外の任意の正の値にすることができます または1 、および n1 は正の値です。

    次に例を示します:

    SELECT LOG(16, 73)
    FROM DUAL;

    結果:

                                     LOG(16,73) 
    ___________________________________________ 
       1.54745613972000430746600429203996036707

    負の値

    負の値は「範囲外」エラーになります:

    SELECT LOG(-16, 73)
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LOG(-16, 73)
    FROM DUAL
    Error report -
    ORA-01428: argument '-16' is out of range

    2番目の引数についても同じです:

    SELECT LOG(16, -73)
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LOG(16, -73)
    FROM DUAL
    Error report -
    ORA-01428: argument '-73' is out of range

    ゼロ

    0を渡す また、「範囲外」エラーが発生します:

    SELECT LOG(0, 73)
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LOG(0, 73)
    FROM DUAL
    Error report -
    ORA-01428: argument '0' is out of range

    また、同じことが2番目の引数にも当てはまります:

    SELECT LOG(16, 0)
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LOG(16, 0)
    FROM DUAL
    Error report -
    ORA-01428: argument '0' is out of range

    合格1

    1を渡す 2番目の引数の結果は0になります :

    SELECT LOG(16, 1)
    FROM DUAL;

    結果:

       LOG(16,1) 
    ____________ 
               0

    1を渡す 最初の引数の場合、「範囲外」エラーが発生します:

    SELECT LOG(1, 2)
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LOG(1, 2)
    FROM DUAL
    Error report -
    ORA-01428: argument '1' is out of range

    表現

    引数には、次のような式を含めることができます:

    SELECT LOG(10 + 6, 12 * 30)
    FROM DUAL;

    結果:

                                LOG(10+6,12*30) 
    ___________________________________________ 
       2.12296327408241867769444932934625579835 

    非数値引数

    引数は、任意の数値データ型、または暗黙的に数値データ型に変換できる任意の非数値データ型にすることができます。

    引数がその基準を満たさない場合に何が起こるかの例を次に示します。

    SELECT LOG('Homer', 'Symptom')
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LOG('Homer', 'Symptom')
    FROM DUAL
    Error report -
    ORA-01722: invalid number

    ヌル引数

    LOG() nullを返します 引数がnullの場合 :

    SET NULL 'null';
    
    SELECT 
        LOG(null, 1024),
        LOG(16, null),
        LOG(null, null)
    FROM DUAL;

    結果:

       LOG(NULL,1024)    LOG(16,NULL)    LOG(NULL,NULL) 
    _________________ _______________ _________________ 
                 null            null              null 

    デフォルトでは、SQLclおよびSQL * Plusは、SQL SELECTの結果としてnull値が発生するたびに空白を返します。 声明。

    ただし、SET NULLは使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。

    引数がありません

    LOG()を呼び出す 引数の数が間違っているか、引数がない場合、エラーが発生します:

    SELECT LOG()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LOG()
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:

    そして:

    SELECT LOG(10, 2, 3)
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT LOG(10, 2, 3)
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00909: invalid number of arguments
    00909. 00000 -  "invalid number of arguments"
    *Cause:    
    *Action:

    1. ゆっくりと変化する寸法(SCD)の概要

    2. JavaでエポックをmySQLタイムスタンプに変換する方法

    3. SQL Server(T-SQL)で失敗した電子メールを確認する

    4. SQL Serverでセミコロンを使用する必要があるのはいつですか?