Oracleでは、NLS_INITCAP()
関数は、各単語の最初の文字を大文字で、他のすべての文字を小文字で引数を返します。
ただし、実際の大文字と小文字は、使用されている照合によって異なります。たとえば、最初の文字よりも多くの文字が大文字になる可能性があります。
INITCAP()
に似ています 関数。ただし、照合を指定できる2番目の引数を受け入れる点が異なります。照合は、ケース変換の特別な言語要件を処理します。
構文
構文は次のようになります:
NLS_INITCAP(char [, 'nlsparam' ])
両方のchar
および'nlsparam'
CHAR
の任意のデータ型にすることができます 、VARCHAR2
、NCHAR
、またはNVARCHAR2
。
'nlsparam'
引数の形式は次のとおりです。
'NLS_SORT = sort'
sort
の場所 名前付きの照合です。
この引数を省略すると、関数の決定された照合が使用されます。
例
簡単な例を次に示します。
SELECT NLS_INITCAP('the lake')
FROM DUAL;
結果:
NLS_INITCAP('THELAKE') _________________________ The Lake
照合を指定する
照合を指定すると結果がどのように変わるかを示す例を次に示します。
SELECT
NLS_INITCAP('het ijsselmeer') AS c1,
NLS_INITCAP('het ijsselmeer', 'NLS_SORT = XDutch') AS c2
FROM DUAL;
結果:
C1 C2 _________________ _________________ Het Ijsselmeer Het IJsselmeer
2番目の列で、 IJsselmeerの最初の2文字に注意してください。 は大文字ですが、最初の列は最初の文字のみを大文字にします。
オランダ語では、 ij は1文字と見なされるため、文の先頭または固有名に出現する場合は、両方の文字が大文字になります。
NLS_SORT
に注意してください 実行時にのみ最初の引数の照合をオーバーライドします。したがって、次のステートメントは、2番目の引数ではなく、最初の引数の照合を返します。
SELECT
COLLATION(NLS_INITCAP('het IJsselmeer', 'NLS_SORT = XDutch')) AS Collation
FROM DUAL;
結果:
COLLATION _________________ USING_NLS_COMP
照合の対象は非常に複雑になる可能性があります。この関数の照合決定規則および照合導出規則については、 『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください。
すべて大文字を渡すとどうなりますか?
すべて大文字を渡しても結果は変わりません:
SELECT
NLS_INITCAP('HET IJSSELMEER', 'NLS_SORT = XDutch') AS Result
FROM DUAL;
結果:
RESULT _________________ Het IJsselmeer
ヌル値
引数がnull
の場合 、結果はnull
です :
SET NULL 'null';
SELECT
NLS_INITCAP('het IJsselmeer', null) AS r1,
NLS_INITCAP(null, 'NLS_SORT = XDutch') AS r2,
NLS_INITCAP(null, null) AS r3
FROM DUAL;
結果:
R1 R2 R3 _______ _______ _______ null null null
デフォルトでは、SQLclおよびSQL * Plusは、null
の場合は常に空白を返します。 SQL SELECT
の結果として発生します 声明。
ただし、SET NULL
は使用できます 返される別の文字列を指定します。ここでは、文字列null
を指定しました 返却する必要があります。
引数の数が正しくありません
NLS_INITCAP()
を呼び出す 引数を渡さないとエラーが返されます:
SELECT NLS_INITCAP()
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT NLS_INITCAP() 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_INITCAP('het IJsselmeer', 'NLS_SORT = XDUTCH', 3)
FROM DUAL;
結果:
Error starting at line : 1 in command - SELECT NLS_INITCAP('het IJsselmeer', 'NLS_SORT = XDUTCH', 3) FROM DUAL Error at Command Line : 1 Column : 59 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: