1

sqlplus セッションからデータを返すときは、通常、次の set コマンドを使用して、データ以外のすべてを抑制します。

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL> select sysdate from dual;

SYSDATE
---------
13-JUL-12

SQL> set pagesize 0 feedback off ver off heading off echo off;
SQL> select sysdate from dual;
13-JUL-12

しかし、シーケンスからデータを取得しようとすると、タブが自動的に追加されているように見えます。設定する必要がある別の sqlplus パラメータはありますか?

SQL> select test_seq.nextval from dual;
         2


SQL>
4

1 に答える 1

3

できますがset tab off、それは問題ではありません。タブの代わりにスペースを取得するだけです。順序値は数値で、SQL*Plus は数値を列の幅まで左に埋め込みます。ヘッダーを表示していた場合、(疑似) 列のヘッダーの右端の文字に合わせて表示されます。

値のサイズがわからず、必要な文字数の書式マスクを実際に設定できないため、これを停止する最も簡単な方法は次のとおりです。

select to_char(test_seq.nextval) as my_val from dual;

複数の列を選択している場合でも、各値の間に複数のスペースが入ります。

追加するために編集: 実際には完全ではありません。set numformat斜めに参照したフォーマットマスクを使用することもできます。また、することもできますset numwidth。ただしnumwidth、少なくとも 2 である必要があるため、1 桁の数字の前に 1 つのスペースが必要です (記号を使用できるようにするためだと思います)。数字の桁数が多すぎる場合は、#代わりに表示されます。そして、列のタイトルがそれよりも長い場合はnumwidth、とにかくそれまで左パディングします。詳細はこちら

于 2012-07-13T16:32:47.020 に答える