- PR -

問い合わせ結果のフォーマットについて

1
投稿者投稿内容
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2005-11-28 10:39
中村と申します。
Unix SunOS 5.6、Oracle8.0.4の実行環境です。
sql*plusにて問い合わせ結果のフォーマットについて調べていたらある疑問に
ぶち当たりました。問い合わせ結果で重複した列を表示しないようにできる、
ブレーク列というのが出てきました。それは、値が重複した場合に、列を表示しないようにするというものでしたが、ブレーク列が一つならば良いのですが、
複数列ある場合はどのようにしたら良いのでしょうか?
ちなみに、ブレークする列を複数列指定してから問い合わせ結果を表示してもそれが反映してくれません。どなたか、ご教授ください。以下にコーディングを記します。
SQL> COLUMN INDEX_NAME HEADING "索引名" FORMAT a20
COLUMN TABLE_NAME HEADING "テーブル名" FORMAT a20
COLUMN COLUMN_NAME HEADING "列名" FORMAT a20
CLEAR BREAKS
BREAK ON INDEX_NAME
BREAK ON TABLE_NAME
SELECT INDEX_NAME,
TABLE_NAME,
COLUMN_NAME
FROM USER_IND_COLUMNS
WHERE TABLE_NAME='AAA'
ORDER BY INDEX_NAME,TABLE_NAME,COLUMN_NAME;
SQL> SQL> SQL> breaksは消去されました。
SQL> SQL> SQL> 2 3 4 5 6
索引名 テーブル名 列名
-------------------- -------------------- --------------------
I_AAA AAA Aコード
I_AAA Bコード
I_AAA Cコード
となって、2つ目に書いたbreak列しか反映されません。
break列とはこういうものなんでしょうか?

今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-11-28 11:00
Oracle8.0.XのSQL*Plusマニュアルより
引用:

BREAKコマンドは、入力するたびに前のBREAKコマンドに取って代わります。
したがって、1つのレポート内でさまざまな間隔設定方法を使いたい場合や、
順序つきの複数の列で値が変更された後に空白を挿入したい場合は、
単一のBREAKコマンドの中で複数の列とアクションを指定する必要があります。


とあるので、BREAK ON INDEX_NAME ON TABLE_NAME
と書けばいかとおもいます。
#試していませんが。(^^;
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2005-11-28 11:05
夏椰【SUICA】さん、早速のレスありがとうございます。
BREAK ON XXX ON YYYとやったら出来ました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)