【PL/SQL】改行・タブの登録と削除方法

ここではORACLE社が提供するPL/SQL言語で、改行・タブの登録と削除方法を紹介しています。

改行やタブ以外、スペースやシングルクォーテーションなどのエスケープ文字については↓で詳しく解説しているので参考にしてください。
>>【PL/SQL】エスケープ文字

改行・タブを登録する方法

文字列に改行やタブを設定するには、CHR関数を使います。

改行やタブの文字コードは次の通りです。

記号文字コード
改行(CR)CHR(13)
改行(LF)CHR(10)
改行(Windows系)CHR(13) || CHR(10)
改行(LINUX系)CHR(10)
タブCHR(9)

改行の登録

改行は「CHR(13) || CHR(10)」で登録することが出来ます。

DECLARE
    str VARCHAR(100);
BEGIN
    str := 'test1' || CHR(13) || CHR(10) || 'test2';
    DBMS_OUTPUT.PUT_LINE(str);
END;
test1
test2
PL/SQLが実行されました(21 msec.)

タブ(tab)の登録

タブは「CHR(9)」で登録することが出来ます。

DECLARE
    str VARCHAR(100);
BEGIN
    str := 'test1' || CHR(9) || 'test2';
    DBMS_OUTPUT.PUT_LINE(str);
END;
test1	test2
PL/SQLが実行されました(6 msec.)

改行・タブを削除する方法

改行やタブを削除(置換)するにはREPLACE関数を使います。

改行の削除

改行を削除するときは、「REPLACE(文字列,CHR(13) || CHR(10),”)」とします。

改行文字を別の文字に置き換えたい場合は「REPLACE(文字列,CHR(13) || CHR(10),置き換え文字)」とします。

次の例では、改行文字コードを削除して再度表示しています。

SQL> DECLARE
  2      str VARCHAR(100);
  3  BEGIN
  4      str := 'test1' || CHR(13) || CHR(10) || 'test2';
  5      DBMS_OUTPUT.PUT_LINE(str);
  6      DBMS_OUTPUT.PUT_LINE('-');
  7      str := REPLACE(str,CHR(13) || CHR(10),'');
  8      DBMS_OUTPUT.PUT_LINE(str);
  9  END;
 10  /
test1
test2
-
test1test2

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

タブ(tab)の削除

タブ(tab)を削除するときは、「REPLACE(文字列,CHR(9),”)」とします。

タブを別の文字に置き換えたい場合は「REPLACE(文字列,CHR(9),置き換え文字)」とします。

次の例では、タブ文字コードを削除して再度表示しています。

SQL> DECLARE
  2      str VARCHAR(100);
  3  BEGIN
  4      str := 'test1' || CHR(9) || 'test2';
  5      DBMS_OUTPUT.PUT_LINE(str);
  6      DBMS_OUTPUT.PUT_LINE('-');
  7      str := REPLACE(str,CHR(9),'');
  8      DBMS_OUTPUT.PUT_LINE(str);
  9  END;
 10  /
test1   test2
-
test1test2

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

改行とタブの同時削除

改行文字とタブを同時に削除するときはREPLACE関数をネストして「REPLACE(REPLACE(文字列,CHR(13) || CHR(10),”),CHR(9),”)」とします。

SQL> DECLARE
  2      str VARCHAR(100);
  3  BEGIN
  4      str := 'test1' || CHR(13) || CHR(10) || 'test2' || CHR(9) || 'test3';
  5      DBMS_OUTPUT.PUT_LINE(str);
  6      DBMS_OUTPUT.PUT_LINE('-');
  7      str := REPLACE(REPLACE(str,CHR(13) || CHR(10),''),CHR(9),'');
  8      DBMS_OUTPUT.PUT_LINE(str);
  9  END;
 10  /
test1
test2   test3
-
test1test2test3

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