Oracleでは、CONCAT() 関数は、引数に対して文字列連結を実行します。引数を連結した結果の文字列を返します。
連結とは、複数の文字列をエンドツーエンドで結合する操作です。
構文
構文は次のようになります:
CONCAT(char1, char2)
ここで、両方の引数は任意のデータ型CHARにすることができます 、VARCHAR2 、NCHAR 、NVARCHAR2 、CLOB 、またはNCLOB 。
例
簡単な例を次に示します。
SELECT CONCAT('Ponzi', 'Invest')
FROM DUAL; 結果:
CONCAT('PONZI','INVEST')
___________________________
PonziInvest ヌル値
文字列をnullと連結する 文字列を返します:
SET NULL 'null';
SELECT
CONCAT('Ponzi', null),
CONCAT(null, 'Invest')
FROM DUAL; 結果:
CONCAT('PONZI',NULL) CONCAT(NULL,'INVEST')
_______________________ ________________________
Ponzi Invest
ただし、両方の引数がnullの場合 、結果はnullです :
SET NULL 'null';
SELECT CONCAT(null, null)
FROM DUAL; 結果:
CONCAT(NULL,NULL) ____________________ null
デフォルトでは、SQLclおよびSQL * Plusは、nullの場合は常に空白を返します。 SQL SELECTの結果として発生します 声明。
ただし、SET NULLは使用できます 返される別の文字列を指定します。ここでは、文字列nullを指定しました 返却する必要があります。
引数の数が正しくありません
CONCAT()を呼び出す 引数を渡さないとエラーが返されます:
SELECT CONCAT()
FROM DUAL; 結果:
Error starting at line : 1 in command - SELECT CONCAT() 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 CONCAT('Gosh', 'Dang', 'Investments')
FROM DUAL; 結果:
Error starting at line : 1 in command -
SELECT CONCAT('Gosh', 'Dang', 'Investments')
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: 文字セットとデータ型
結果の文字列は最初の引数と同じ文字セットですが、そのデータ型は引数のデータ型によって異なります。
2つの異なるデータ型を連結する場合、Oracle Databaseは、ロスレス変換をもたらすデータ型を返します。したがって、引数の1つがLOBの場合、戻り値はLOBです。引数の1つが国別データ型である場合、戻り値は国別データ型です。
例:
-
CONCAT(CLOB、NCLOB)はNCLOBを返します -
CONCAT(NCLOB、NCHAR)はNCLOBを返します -
CONCAT(NCLOB、CHAR)はNCLOBを返します -
CONCAT(NCHAR、CLOB)はNCLOBを返します