2017-01-12 6 views
1

基本的なSQL * Plusレポートの作成方法を学習しています。基本的なSQL * Plusレポート:コマンドがブレーク・オンしても機能しない

練習中に、BREAK ONコマンドで問題が発生しましたが、進める方法がわかりません。

参考として、使用されるテーブルは「新聞」と呼ばれ、新聞にフィーチャーの名前、そのフィーチャーのセクション、フィーチャーがどのページに入っているかを含みます。

rem Newspaper Report 

ttitle 'Newspaper Features by Section' 
btitle 'Hot off the Presses' 

column feature format a15 word_wrapped 
column section format a7 
column page format 99 
column feature heading 'Feature' 
column section heading 'Section' 
column page heading 'Page' 

break on section skip 1 

set linesize 80 
set pagesize 40 
set newpage 0 
set feedback off 

spool test.sql 

select section, feature, page from newspaper 
order by section; 

spool off 

出力:それは達するたびに、この例では

Section Feature   Page 
------- --------------- ---- 
A  National News  1 
     Editorials  12 

B  Bridge    2 
     Movies    4 
     Modern Life  1 
     Television   7 

C  Comics    4 
     Weather   2 

D  Sports    1 

E  Business   1 

F  Obituaries   6 
     Classified   8 
     Doctor Is In  6 
     Births    7 

は、SQL * Plusは1行をスキップし

次のレポートを実行し、SQL * Plusは、期待通りの結果を返します。新機能。これが働くことが期待される方法です。私は次のレポートを実行すると

しかし、私の結果は道をフォーマットされていない、彼らは次のようになります。

rem Newspaper Report 

ttitle 'Newspaper Features by Page' 
btitle 'Hot off the Presses' 

column feature format a15 word_wrapped 
column section format a7 
column page format 99 
column feature heading 'Feature' 
column section heading 'Section' 
column page heading 'Page' 

break on page skip 1 

set linesize 80 
set pagesize 40 
set newpage 0 
set feedback off 

spool test.sql 

select page, feature, section from newspaper 
order by page; 

spool off 

出力:

Page Feature   Section 
---- --------------- ------- 
    1 Modern Life  B 
    Sports   D 
    National News A 
    Business  E 
    2 Weather   C 
    Bridge   B 
    4 Movies   B 
    Comics   C 
    6 Doctor Is In F 
    Obituaries  F 
    7 Television  B 
    Births   F 
    8 Classified  F 
    12 Editorials  A 

ませラインは、ページが変更されたときにスキップされませんでした。 。私は何か間違っているのですか、このようにコマンドが制限されていますか?

答えて

2

問題は「ページ」という列名です。ページはBREAK ACTIONなので「ページ」以外の列にエイリアスを付けて試してみることができますか?例:

column page_temp heading 'Page' 

break on page_temp skip 1 

set linesize 80 
set pagesize 40 
set newpage 0 
set feedback off 

spool test.sql 

select page page_temp, feature, section from newspaper 
order by page; 
+0

これはトリックでした! –

関連する問題