13.3 ADD_AGGREGATEプロシージャ
このプロシージャは、集計を集計コレクションに追加します。集計コレクションは、集計行を追加するためにEXPORT
コールに渡すことができます。このプロシージャは、全体集計のためにコントロールブレークと組み合せて使用することも、スタンドアロンで使用することもできます。空の集計コレクションが渡された場合(または集計コレクションが渡されなかった場合)、集計行はエクスポートにレンダリングされません。
このプロシージャには集計列が必要です。値は、現在の集計合計(コントロール・ブレークの場合)または全体の合計です。
構文
PROCEDURE ADD_AGGREGATE(
p_aggregates IN OUT NOCOPY t_aggregates,
p_label IN t_label,
p_format_mask IN VARCHAR2 DEFAULT NULL,
p_display_column IN wwv_flow_exec_api.t_column_name,
p_value_column IN wwv_flow_exec_api.t_column_name,
p_overall_label IN t_label DEFAULT NULL,
p_overall_value_column IN wwv_flow_exec_api.t_column_name DEFAULT NULL );
パラメータ
パラメータ | 説明 |
---|---|
p_aggregates |
集計コレクション。 |
p_label |
集計ラベル。 |
p_format_mask |
集計値に適用する書式マスク。 |
p_display_column |
集計を表示する列の名前。 |
p_value_column |
集計の値を含む列の名前。 |
p_overall_label |
全体のラベル。 |
p_overall_value_column |
全体集計の値を含む列の名前。 |
例
DECLARE
l_aggregates apex_data_export.t_aggregates;
l_columns apex_data_export.t_columns;
l_context apex_exec.t_context;
l_export apex_data_export.t_export;
BEGIN
apex_data_export.add_aggregate(
p_aggregates => l_aggregates,
p_label => 'Sum',
p_format_mask => 'FML999G999G999G999G990D00',
p_display_column => 'SAL',
p_value_column => 'AGGREGATE1',
p_overall_label => 'Total sum',
p_overall_value_column => 'OVERALL1' );
apex_data_export.add_column( p_columns => l_columns, p_name => 'DEPTNO', p_is_column_break => true );
apex_data_export.add_column( p_columns => l_columns, p_name => 'EMPNO');
apex_data_export.add_column( p_columns => l_columns, p_name => 'ENAME');
apex_data_export.add_column( p_columns => l_columns, p_name => 'SAL');
l_context := apex_exec.open_query_context(
p_location => apex_exec.c_location_local_db,
p_sql_query => 'select deptno,
empno,
ename,
sal,
sum( sal) over ( partition by deptno ) as AGGREGATE1,
sum( sal) over ( ) as OVERALL1
FROM emp
order by deptno' );
l_export := apex_data_export.export (
p_context => l_context,
p_format => apex_data_export.c_format_pdf,
p_columns => l_columns,
p_aggregates => l_aggregates );
apex_exec.close( l_context );
apex_data_export.download( p_export => l_export );
EXCEPTION
WHEN others THEN
apex_exec.close( l_context );
raise;
END;
親トピック: APEX_DATA_EXPORT