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

OracleのNLS_UPPER()関数

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

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

    構文

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

    NLS_UPPER(char [, 'nlsparam' ])

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

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

    'NLS_SORT = sort'

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

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

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

    SELECT NLS_UPPER('coffee time') AS Result
    FROM DUAL;

    結果:

            RESULT 
    ______________ 
    COFFEE TIME   

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

    SELECT NLS_UPPER('Coffee Time') AS Result
    FROM DUAL;

    結果:

            RESULT 
    ______________ 
    COFFEE TIME   

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

    SELECT NLS_UPPER('COFFEE TIME') AS Result
    FROM DUAL;

    結果:

            RESULT 
    ______________ 
    COFFEE TIME   

    照合を指定する

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

    SELECT 
        NLS_UPPER('fasilə') AS r1,
        NLS_UPPER('fasilə', 'NLS_SORT = XAZERBAIJANI') AS r2
    FROM DUAL;

    結果:

           R1        R2 
    _________ _________ 
    FASILƏ    FASİLƏ   

    2番目の列は点線の大文字Iを使用していることに注意してください アゼルバイジャンの書記体系に準拠した文字。

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

    SELECT
        COLLATION(NLS_UPPER('fasilə', 'NLS_SORT = XAZERBAIJANI')) AS Collation
    FROM DUAL;

    結果:

            COLLATION 
    _________________ 
    USING_NLS_COMP   

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

    ヌル値

    nullを渡す nullを返します :

    SELECT
        NLS_UPPER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
        NLS_UPPER('fasilə', null) AS r2,
        NLS_UPPER(null, null) AS r3
    FROM DUAL;

    結果:

         R1      R2      R3 
    _______ _______ _______ 
    null    null    null   

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

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

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

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

    SELECT NLS_UPPER()
    FROM DUAL;

    結果:

    Error starting at line : 1 in command -
    SELECT NLS_UPPER()
    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_UPPER('coffee', 'NLS_SORT = XAZERBAIJANI', 'time')
    FROM DUAL;

    結果:

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

    1. SQLiteのNullIf()とIfNull()の違い

    2. 複合主キーを外部キーとして使用する

    3. 駐車場管理システムのデータモデルの構築

    4. SQL Server:CROSSJOINとFULLOUTER JOINの違いは何ですか?