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

OracleのNLS_COLLATION_NAME()関数

    Oracle Databaseでは、NLS_COLLATION_NAME() 関数は、IDに基づいて、指定された照合の名前を返します。関数を呼び出すときに照合IDを渡すと、照合名が返されます。

    構文

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

     NLS_COLLATION_NAME(expr [, flag ]) 

    exprの場所 タイプNUMBERの照合IDです。 。

    flag 引数は、 Unicode照合アルゴリズム(UCA)照合にのみ適用されるオプションの引数です。関数が照合名の短い形式と長い形式のどちらを返すかを決定します。

    flag 引数は次のいずれかになります:

    フラグ 説明
    'S' または's' 照合名の短縮形を返します。
    'L' または'l' 照合名の長い形式を返します。

    このフラグのデフォルト値は'L'です。 。

    基本的な例は次のとおりです。

     SELECT NLS_COLLATION_NAME(70)
    FROM DUAL; 

    結果:

     XAZERBAIJANI 

    その他の例を次に示します。

     SELECT 
        NLS_COLLATION_NAME(4112) AS "1",
        NLS_COLLATION_NAME(4116) AS "2"
    FROM DUAL; 

    結果:

     1 2 ___________ _____________ FRENCH_M CANADIAN_M 

    ロング/ショートフォームフラグ

    前述のように、オプションのフラグを渡して、照合名の短い形式と長い形式のどちらを返すかを決定できます。

     SELECT 
        NLS_COLLATION_NAME(208920, 'L') AS "Long",
        NLS_COLLATION_NAME(208920, 'S') AS "Short"
    FROM DUAL; 

    結果:

    ロングショート________________________________________________________________________________ 

    このフラグのデフォルト値は'L'です。 。したがって、フラグを省略すると、長い形式が返されます:

     SELECT 
        NLS_COLLATION_NAME(208920) AS "Default"
    FROM DUAL; 

    結果:

    デフォルト__________________________________________UCA0620_THAI_S4_VS_BN_NY_EN_FN_HN_DN_MN

    ただし、このフラグはUnicode照合アルゴリズム(UCA)照合にのみ適用されます。

    フラグをUCA以外の照合に適用しても、違いはありません:

     SELECT 
        NLS_COLLATION_NAME(4112, 'L') AS "1",
        NLS_COLLATION_NAME(4112, 'S') AS "2"
    FROM DUAL; 

    結果:

     1 2 ___________ ___________ FRENCH_M FRENCH_M 

    無効な照合

    無効な照合名を渡すと、nullになります :

     SET NULL 'null';
    SELECT NLS_COLLATION_NAME(4113)
    FROM DUAL; 

    結果:

     null 

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

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

    ヌル引数

    nullを渡す nullを返します :

     SET NULL 'null';
    SELECT NLS_COLLATION_NAME(null)
    FROM DUAL; 

    結果:

     null 

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

    引数を渡さずに関数を呼び出すと、エラーが発生します:

     SELECT NLS_COLLATION_NAME()
    FROM DUAL; 

    結果:

    コマンドラインの行:1から始まるエラー-SELECT NLS_COLLATION_NAME()FROM DUALコマンドラインのエラー:1列:8エラーレポート-SQLエラー:ORA-00938:function00938の引数が不足しています。 00000-「関数の引数が足りません」*原因:*アクション:

    また、あまりにも多くの引数を渡すと、エラーが発生します:

     SELECT NLS_COLLATION_NAME(4112, 'S', 'L')
    FROM DUAL; 

    結果:

    コマンドラインの行:1から始まるエラー-SELECT NLS_COLLATION_NAME(4112、'S'、'L')FROM DUALコマンドラインのエラー:1列:8エラーレポート-SQLエラー:ORA-00939:function00939の引数が多すぎます。 00000-「関数の引数が多すぎます」*原因:*アクション:

    1. SQL Serverでテーブルをあるデータベースから別のデータベースにコピーするための完全なプロセス(エクスポート-インポート)

    2. MySQLでピボットテーブルを作成する方法

    3. SQLiteで日付順に並べ替える方法

    4. onUpgradeメソッドが呼び出されたことはありますか?