ここでは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プロシージャが正常に完了しました。