【PL/SQL】大文字・小文字の扱いと変換する方法


ここではORACLE社が提供するPL/SQL言語の大文字・小文字の扱いと変換する方法を紹介しています。

PL/SQLの大文字・小文字の扱い

PL/SQLでは、基本的に大文字と小文字は区別されません。

例えば、次のような大文字で記述されたプログラムがあるとします。このプログラムは小文字でコーディングしても全く同じ動作をします。

BEGIN
    FOR i IN 1..3 LOOP
        DBMS_OUTPUT.PUT_LINE(i);
    END LOOP;
END;

上下とも同じ結果を返します。

begin
    for i in 1..3 loop
        dbms_output.put_line(i);
    end loop;
end;

文字リテラル内は区別される

PL/SQLでは、大文字・小文字は基本的に区別されませんが、文字リテラル内は区別されます。

例えば次のように、’TEST’と’test’では大文字と小文字が区別されるので結果が異なります。これはSQLを発行する場合も同様なので注意が必要です。

SQL> begin
  2          dbms_output.put_line('TEST');
  3  end;
  4  /
TEST

PL/SQLプロシージャが正常に完了しました。
SQL> begin
  2          dbms_output.put_line('test');
  3  end;
  4  /
test

PL/SQLプロシージャが正常に完了しました。

PL/SQLの大文字・小文字の変換

PL/SQLで大文字と小文字を変換するには、UPPER関数とLOWER関数を使います。

UPPER関数:大文字への変換

PL/SQLで大文字に変換するときは、UPPER関数を使います。

UPPER関数を使うと、小文字は大文字に、大文字はそのまま大文字で出力されます。

SQL> begin
  2          dbms_output.put_line(UPPER('Test'));
  3  end;
  4  /
TEST

PL/SQLプロシージャが正常に完了しました。

LOWER関数:小文字への変換

PL/SQLで小文字に変換するときは、LOWER関数を使います。

LOWER関数を使うと、大文字は小文字に、小文字はそのまま小文字で出力されます。

SQL> begin
  2          dbms_output.put_line(LOWER('Test'));
  3  end;
  4  /
test

PL/SQLプロシージャが正常に完了しました。

INITCAP関数

UPPER関数、LOWER関数の他にINITCAP関数というものがあります。

これは文字列の先頭だけを大文字に変換する関数です。

実行すると次のように先頭文字が大文字に変換されます。

SQL> begin
  2          dbms_output.put_line(INITCAP('test'));
  3  end;
  4  /
Test

PL/SQLプロシージャが正常に完了しました。

また、全て大文字の場合は先頭文字以外は小文字に変換されます。

SQL> begin
  2          dbms_output.put_line(INITCAP('TEST'));
  3  end;
  4  /
Test

PL/SQLプロシージャが正常に完了しました。