SQLで指定した数のスペースを出力する
レコードの一部の列に大量のスペースを出力する必要があって調べてみましたが、OracleにはVBのspace関数のようなものは用意されていないようですね。単純に
select ' ' from dual;
みたいな書き方をすると、スペースの数が多いときに、コーディング規約の折り返し文字数にひっかかったり、そのためにエスケープさせたりと大変です。なので、数を明示して指定する方法を考えます。
select CAST(' ' AS CHAR(1000)) from dual;
これだとCHARの最大文字列長である2000バイトは超えられません。そこで次のようにしてみました。
select LPAD(' ', 1000, ' ') from dual;
CASTを使う方法もCHARではなくVARCHAR2に変換すれば2000バイト超えられますね。ちなみに、どっちがパフォーマンスいいかは調べていません。