Oracleにおける文字列接続の実現方法


他のデータベースシステムと同様に、Oracle文字列接続は、MSSQLServerのプラス記号「+」と同様に、「𞓜𞓜」を使用して文字列をスティッチングする。たとえば、以下のSQL文を実行します。

SELECT ' '||FNumber||' '||FName FROM T_Employee
WHERE FName IS NOT NULL
は「𞓜𞓜」に加えて、OracleはCONCAT()関数を使って文字列スティッチングを行うこともサポートしています。たとえば、次のSQL文を実行します。Employee CONCATに接続されている値が文字列ではない場合、Oracleは次のSQL文を実行します。SELECT CONCAT('年齢:',FAge)FROM T_EmployeeはMYSQLのCONCAT()関数と違って、OracleのCONCAT()関数は二つのパラメータしかサポートしていません。次のSQL文はOracleでエラーです。Employee WHERE FName IS NOT NULLが実行された後、Oracleは以下のエラー情報を報告します。パラメータの個数が無効です。複数の文字列のスティッチングを行うなら、複数のCONCAT()関数を使用してネストして使用できます。上のSQLは以下のように書き換えられます。

SELECT CONCAT(CONCAT(CONCAT(' ',FNumber),' '),FName) FROM
T_Employee
WHERE FName IS NOT NULL