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

OracleのNLS_LOWER()関数

    Oracleでは、NLS_LOWER() 関数は、すべての文字を小文字にして引数を返します。

    LOWER()に似ています 関数。ただし、照合を指定できる2番目の引数を受け入れる点が異なります。照合は、ケース変換の特別な言語要件を処理します。

    構文

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

    NLS_LOWER(char [, 'nlsparam' ])

    ここで、両方char および'nlsparam' CHARの任意のデータ型にすることができます 、VARCHAR2NCHARNVARCHAR2CLOB 、またはNCLOB

    'nlsparam' 引数の形式は次のとおりです。

    'NLS_SORT = sort'

    sortの場所 名前付きの照合です。

    この引数を省略すると、関数の決定された照合が使用されます。

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

    SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
    FROM DUAL;

    結果:

              RESULT 
    ________________ 
    homer symptom   

    引数で大文字と小文字が混在する場合も同様です。

    SELECT NLS_LOWER('Homer Symptom') AS Result
    FROM DUAL;

    結果:

              RESULT 
    ________________ 
    homer symptom   

    また、引数がすでに小文字の場合、結果は入力と同じになります。

    SELECT NLS_LOWER('homer symptom') AS Result
    FROM DUAL;

    結果:

              RESULT 
    ________________ 
    homer symptom   

    照合を指定する

    照合を指定すると結果がどのように変わるかを示す例を次に示します。

    SELECT 
        NLS_LOWER('BALIQ') AS r1,
        NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
    FROM DUAL;

    結果:

          R1       R2 
    ________ ________ 
    baliq    balıq   

    2番目の列はドットのない小文字のiを使用していることに注意してください アゼルバイジャンの書記体系に準拠した文字。

    NLS_SORTに注意してください 実行時にのみ最初の引数の照合をオーバーライドします。したがって、次のステートメントは、2番目の引数ではなく、最初の引数の照合を返します。

    SELECT
        COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
    FROM DUAL;

    結果:

            COLLATION 
    _________________ 
    USING_NLS_COMP   

    照合の対象は非常に複雑になる可能性があります。この関数の照合決定規則および照合導出規則については、 『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください。

    ヌル値

    nullを渡す nullを返します :

    SELECT
        NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
        NLS_LOWER('BALIQ', null) AS r2,
        NLS_LOWER(null, null) AS r3
    FROM DUAL;

    結果:

         R1      R2      R3 
    _______ _______ _______ 
    null    null    null   

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

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

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

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

    SELECT NLS_LOWER()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NLS_LOWER()
    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 NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
    FROM DUAL
    Error at Command Line : 1 Column : 54
    Error report -
    SQL Error: ORA-00939: too many arguments for function
    00939. 00000 -  "too many arguments for function"
    *Cause:    
    *Action:

    1. 動的SQLループ

    2. MySQL utf8mb4、絵文字を保存するときのエラー

    3. SQL Serverデータベースにauto_increment主キーを追加するにはどうすればよいですか?

    4. SQL Server(T-SQL)でサポートされているタイムゾーンのリストを取得する