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

OracleのRPAD()関数

    Oracleでは、RPAD() 関数を使用すると、文字列の右側の部分を特定の文字で、指定された文字数までパディングできます。

    それが機能する方法は、結果の文字列の長さを指定することです。元の文字列が短い場合、残りのスペースはパディング文字で埋められます。

    構文

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

    RPAD(expr1 , n [, expr2 ])

    場所:

    • expr1 およびexpr2 CHARの任意のデータ型にすることができます 、VARCHAR2NCHARNVARCHAR2CLOB 、またはNCLOB
    • n NUMBERです 整数またはNUMBERに暗黙的に変換できる値 整数。

    この関数はexpr1を返します 、長さ nに右パッド expr2の文字のシーケンスを持つ文字

    expr2の場合 省略した場合、パディング文字は単一の空白になります。

    簡単な例を次に示します。

    SELECT RPAD('Cat', 25)
    FROM DUAL;

    結果:

                  RPAD('CAT',25) 
    ____________________________ 
    Cat                         

    文字列にデフォルトの文字(スペース)を埋め込んだため、この例の効果を確認するのは簡単ではありませんが、列の幅を押し出す効果がありました。

    以下は、効果をよりよく示す別の例です。

    SELECT RPAD('Cat', 15) || 'House'
    FROM DUAL;

    結果:

       RPAD('CAT',15)||'HOUSE' 
    __________________________ 
    Cat            House      

    2つの弦を連結すると、左端の弦の右側に適用されたパディングの量がわかります。

    提供される数値は、結果の文字列の合計幅であることに注意してください– パディングの量。

    文字を指定

    この例では、パディングに使用する文字を指定します:

    SELECT RPAD('Cat', 7, '!')
    FROM DUAL;

    結果:

       RPAD('CAT',7,'!') 
    ____________________ 
    Cat!!!!             

    元の文字列よりも小さいパディング

    2番目の引数が元の文字列よりも小さい場合、パディングは追加されず、元の文字列は指定された文字数に短縮されます。

    SELECT RPAD('Cat', 2)
    FROM DUAL;

    結果:

       RPAD('CAT',2) 
    ________________ 
    Ca              

    データベースの例

    データベース列の値の右側をパディングする例を次に示します。

    SELECT 
        country_name,
        RPAD(country_name, 12, '.') AS Padded
    FROM countries
    FETCH FIRST 5 ROWS ONLY;

    結果:

       COUNTRY_NAME          PADDED 
    _______________ _______________ 
    Argentina       Argentina...    
    Australia       Australia...    
    Belgium         Belgium.....    
    Brazil          Brazil......    
    Canada          Canada......   

    ヌル値

    引数のいずれかがnullの場合 結果はnullです :

    SET NULL 'null';
    
    SELECT 
        RPAD(null, 3),
        RPAD('Cat', null),
        RPAD('Cat', 3, null)
    FROM DUAL;

    結果:

       RPAD(NULL,3)    RPAD('CAT',NULL)    RPAD('CAT',3,NULL) 
    _______________ ___________________ _____________________ 
    null            null                null                 

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

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

    引数の数が正しくありません

    RPAD()の呼び出し 引数を渡さないとエラーが返されます:

    SELECT RPAD()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT RPAD()
    FROM DUAL
    Error at Command Line : 1 Column : 8
    Error report -
    SQL Error: ORA-00938: not enough arguments for function
    00938. 00000 -  "not enough arguments for function"
    *Cause:    
    *Action:

    また、間違った数の引数を渡すと、エラーが発生します:

    SELECT RPAD('Cat', 1, '>', 2)
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT RPAD('Cat', 1, '>', 2)
    FROM DUAL
    Error at Command Line : 1 Column : 28
    Error report -
    SQL Error: ORA-00939: too many arguments for function
    00939. 00000 -  "too many arguments for function"
    *Cause:    
    *Action:

    1. コンテナオーケストレーションツールを使用せずにMariaDBGaleraクラスターを実行する:パート1

    2. メッセージを楽しむ

    3. VARCHAR2(10 CHAR)とNVARCHAR2(10)の違い

    4. これらの3つのヒントを使用して、SQLServerのパフォーマンスチューニングを改善します