Oracle SQL 関数 : LENGTH : 文字列の長さ取得
numberRet := LENGTH( dateSrc );
dateSrc の文字列の長さをを返します。
文字列の中の全角文字はそれ自身を1文字として数えます。
charのデータ型がCHARの場合、長さには後続する空白がすべて含まれます。charがNULLの場合は、NULLが返されます。
SQL> SELECT 'the capital,TOKYO' ORGINAL, LENGTH( 'the capital,TOKYO' ) LENGTH |
4 SELECT 'the capital、TOKYO' , LENGTH( 'the capital、TOKYO' ) |
7 SELECT 'あいうえお abcde 0123abcde ABCDE' , LENGTH( 'あいうえお abcde 0123abcde ABCDE' ) |
あいうえお abcde 0123abcde ABCDE 27 |
上のSQLで
LENGTH 関数は半角文字、全角文字に関係なく文字の個数として数えることが分かります。
この
LENGTH に似た関数として
LENGTHB が有ります。この関数は内部で持っているコードのバイト数を返します。
内部のコード体系が
Shift-jis ,
Unicode などで各文字ごとにバイト数が変わりますので、
この関数を使うことはあまりないかと思います。
取敢えず上のSQLを
LENGTHB に変えたもので実行してみます。
(私のOracleはコードを
Shift-jis に設定してあります。)
SQL> SELECT 'the capital,TOKYO' ORGINAL, LENGTHB( 'the capital,TOKYO' ) LENGTHB |
4 SELECT 'the capital、TOKYO' , LENGTHB( 'the capital、TOKYO' ) |
7 SELECT 'あいうえお abcde 0123abcde ABCDE' , LENGTHB( 'あいうえお abcde 0123abcde ABCDE' ) |
あいうえお abcde 0123abcde ABCDE 33 |
本書用のWebアプリを使ってSQLを実行し学習していきます。初心者の方に分かりやすく、図表を多く使って解説されています。 学習の最後には200問越えのドリルが付いていてSQLのスキルが試せる様になっています。