Oracle Databaseでは、COLLATION() 関数は、引数として派生した照合の名前を返します。
構文
構文は次のようになります:
COLLATION(expr)
exprの場所 タイプCHARの文字列に評価する必要があります 、VARCHAR2 、LONG 、NCHAR 、またはNVARCHAR2 。
例
基本的な例は次のとおりです。
SELECT COLLATION('Boat')
FROM DUAL; 結果:
USING_NLS_COMP
COLLATEの例 条項
COLLATEを使用すると次のようになります 照合を明示的に指定する句:
SELECT COLLATION('Boat' COLLATE LATIN_AI)
FROM DUAL; 結果:
LATIN_AI
NLS_SORTを使用する場合の考慮事項
COLLATION() 関数は、データにバインドされた照合のみを返し、NLS_SORTによって設定された動的照合は返しません。 パラメータ。
例:
SELECT COLLATION('Boat' COLLATE USING_NLS_SORT)
FROM DUAL; 結果:
USING_NLS_SORT
SYS_CONTEXT()を使用できます NLS_SORTの値を返す関数 パラメータ:
SELECT SYS_CONTEXT('USERENV','NLS_SORT')
FROM DUAL; 結果:
BINARY
ただし、_CIなどのサフィックス 、_AI 、および_CS 返されます:
SELECT
COLLATION('Boat' COLLATE USING_NLS_SORT_CI) AS "_CI",
COLLATION('Boat' COLLATE USING_NLS_SORT_CS) AS "_CS",
COLLATION('Boat' COLLATE USING_NLS_SORT_AI) AS "_AI"
FROM DUAL; 結果:
_CI _CS _AI ____________________ ____________________ ____________________ USING_NLS_SORT_CI USING_NLS_SORT_CS USING_NLS_SORT_AI
ヌル引数
nullを渡しても、照合は返されます :
SELECT COLLATION(null)
FROM DUAL; 結果:
USING_NLS_COMP
引数の数が正しくありません
引数を渡さずに関数を呼び出すと、エラーが発生します:
SELECT COLLATION()
FROM DUAL; 結果:
Error starting at line : 1 in command - SELECT COLLATION() 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 COLLATION('Boat', 'Dang')
FROM DUAL; 結果:
Error starting at line : 1 in command -
SELECT COLLATION('Boat', 'Dang')
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: