Oracle® Fusion Middleware Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイド 12c (12.2.1.4.0) E96099-04 |
|
前 |
次 |
ここでは、RTFテンプレートで使用される、BI Publisherによって拡張されたSQLおよびXSL関数について説明します。
内容は次のとおりです。
BI Publisherでは、RTFテンプレートで使用するために一連のSQLおよびXSL関数が拡張されています。
これらの拡張関数の構文は、次のとおりです。
<?xdofx:expression?>
(拡張SQL関数用)
<?xdoxslt:expression?>
(拡張XSL関数用)
xdofx
文とXSL式は、同一のコンテキストでは混在できません。たとえば、FIRST_NAMEとLAST_NAMEという2つの要素があり、30文字のフィールドに連結してフィールド内の右側に「x」の文字を埋め込むとします。次のものは使用できません。
不適切:
<?xdofx:rpad(concat(FIRST_NAME,LAST_NAME),30, 'x')?>
連結がXSL式であるためです。かわりに、次の構文を使用できます。
適切:
<?xdofx:rpad(FIRST_NAME||LAST_NAME),30,'x')?>
次の表に、サポートされている関数を示します。
SQL文またはXSL式 | 使用方法 | 説明 |
---|---|---|
2+3 |
|
加算 |
2-3 |
|
減算 |
2*3 |
|
乗算 |
2 div 3 |
|
除算 |
2**3 |
|
指数 |
3||2 |
|
連結 |
sdiv() |
|
安全な除算関数は、関数の結果が数値でない場合に、指定された値を返します(NaN)。ここに示す構文のnum1は被除数で、num2は除数、stringはNaNが返された場合に戻す値です。 例:
|
lpad('aaa',10,'.') |
|
lpad関数は、文字列の左側を一連の特定の文字で埋めます。lpad関数の構文はlpad(string1,padded_length,[pad_string])です。string1は、(その左側の)文字を埋める文字列です。padded_lengthは、戻される文字数です。pad_stringは、string1の左側を埋める文字列です。 |
rpad('aaa',10,'.') |
|
rpad関数は、文字列の右側を一連の特定の文字で埋めます。rpad関数の構文はrpad(string1,padded_length,[pad_string])です。string1は、(その右側の)文字を埋める文字列です。padded_lengthは、戻される文字数です。pad_stringは、string1の右側を埋める文字列です。 |
trim() |
|
文字列の中の空白を削除します。切捨て対象となるテキストを入力し、切捨て処理されたテキストが戻されます。 |
ltrim() |
|
文字列の先頭にある空白を削除します。 |
rtrim() |
|
文字列の末尾にある空白を削除します。 |
切捨て |
|
truncate関数は、numberを切捨て処理し、小数点第integer位までの桁数が戻されます。integerを省略すると、numberは整数値に切り捨てられます。integerに負数を指定すると、小数点の左側(整数部)の指定桁位置で切捨て処理できます。integerには整数を指定する必要があります。例: |
replicate |
|
replicate関数は、指定された文字列を指定された回数だけレプリケートします。例: |
decode('xxx','bbb','ccc','xxx','ddd') |
|
decode関数には、IF-THEN-ELSE文の機能があります。decode関数の構文はdecode(expression, search, result [,search, result]...[, default])です。expressionは比較対象の値です。searchは、expressionに対して比較される値です。resultは、expressionがsearchと等しい場合に戻される値です。一致が見つからない場合はdefaultが戻されます。 |
Instr('abcabcabc','a',2) |
<?xdofx:Instr('abcabcabc','a',2)?> |
instr関数は、文字列内の部分文字列の位置を戻します。instr関数の構文はinstr(string1,string2,[start_position],[nth_appearance])です。string1は検索対象の文字列です。string2は、string1内で検索される部分文字列です。start_positionは、string1内の検索開始位置です。文字列の最初の位置は1です。start_positionがマイナスの場合は、string1の最後から逆にstart_positionの文字数が数えられ、string1の先頭方向に検索されます。nth appearanceは、string2のn番目の出現を表します。 |
substr('abcdefg',2,3) |
|
substr関数を使用すると、文字列から部分文字列を抽出できます。substr関数の構文はsubstr(string, start_position, length)です。stringはソース文字列です。start_positionは抽出開始位置です。文字列の最初の位置は常に1です。lengthは抽出文字数です。 |
left |
|
指定された文字数の文字列を文字列の左側から抽出できます。構文は、left(string, Numchars)です。例: |
right |
|
指定された文字数の文字列を文字列の右側から抽出できます。構文は、right(string, Numchars)です。例: |
replace(name,'John','Jon') |
|
replace関数は、文字列内の一続きの文字を別の一連の文字で置換します。replace関数の構文はreplace(string1,string_to_replace,[replacement_string])です。string1は、その中の一続きの文字が別の一連の文字で置換される文字列です。string_to_replaceは、string1内で検索される文字列です。replacement_stringはオプションです。string1内のすべてのstring_to_replaceがreplacement_stringで置換されます。 |
to_number('12345') |
|
to_number関数は、オプションの書式モデルfmtによって指定された書式で数字が格納されているchar、CHAR、VARCHAR2、NCHARまたはNVARCHAR2データ型の値をNUMBERデータ型の値に変換します。 |
format_number |
|
数値を文字列に変換し、$_XDOLOCALEで指定されたロケールおよびnで指定された小数部の桁数に従い、Javaのデフォルト記号を使用して数値を書式設定します。例: |
format_number |
|
数値を文字列に変換し、指定されたセパレータを使用します。s1は3桁のセパレータ、s2は小数点のセパレータを示します。例: |
pat_format_number |
|
指定されたパターンで書式設定された数値を戻します。例: |
to_char(12345) |
|
to_char関数を使用して、NUMBERデータ型の値をVARCHAR2データ型に変換します。 |
to_date |
<?xdofx:to_date ( char [, fmt [, 'nlsparam']] ) |
to_dateは、CHAR、VARCHAR2、NCHARまたはNVARCHAR2データ型の文字をDATEデータ型の値に変換します。fmtはcharの書式を指定する日付書式です。fmtを省略すると、charはデフォルトの日付書式になります。fmtがユリウス暦を示す'J'の場合、charは整数になります。 |
format_date() |
|
日付を特定の書式で読み取り、別の書式の日付を作成します。 |
sysdate() |
|
SYSDATEは、現在の日時をXMLの標準日付書式で返します(例: 1997-07-16T19:20:30.45+01:00)。戻り値のデータ型はDATEになります。この関数に引数を指定する必要はありません。レポート出力におけるsysdateの正しい書式設定の詳細は、「レポートでのシステム日付(sysdate)の表示」を参照してください。 |
current_date() |
|
指定されたロケールとタイムゾーンで現在の日付をyyyy-MM-dd形式で戻します。この関数はグレゴリオ暦のみをサポートします。 |
current_time() |
|
指定されたロケールとタイムゾーンで現在の時刻を戻します。この関数はグレゴリオ暦のみをサポートします。 |
minimum |
|
セット内の要素の最小値を戻します。 |
date_diff |
|
この関数により、指定されたロケールで2つの日付値の差異を取得します。日付はyyyy-MM-dd形式にする必要があります。この関数はグレゴリオ暦のみをサポートします。構文は、
例: 戻り値: 1 例: 戻り値: -14 例: 戻り値: -7 |
sec_diff |
|
この関数により、指定されたロケールで2つの日付値の差異を秒単位で取得します。日付はyyyy-MM-dd'T'HH:mm:ss形式で指定する必要があります。この関数はグレゴリオ暦のみをサポートします。例: |
get_day |
|
この関数により、指定されたロケールでyyyy-MM-dd形式の日付値における日の値を取得します。この関数はグレゴリオ暦のみをサポートします。例: |
get_month |
|
この関数により、指定されたロケールでyyyy-MM-dd形式の日付値における月の値を取得します。この関数はグレゴリオ暦のみをサポートします。例: |
get_year |
|
この関数により、指定されたロケールでyyyy-MM-dd形式の日付値における年の値を取得します。この関数はグレゴリオ暦のみをサポートします。例: |
month_name |
|
この関数により、指定されたロケールで月の名前を取得します。この関数はグレゴリオ暦のみをサポートします。この関数の構文は、 |
maximum |
|
セット内の要素の最大値を戻します。 |
abs |
|
指定された数値の絶対値を戻します。例: |
chr |
|
chrは、データベース文字セットまたは各国語文字セットでnに相当するバイナリを持つキャラクタを戻します。 |
ceil |
|
ceilは、n以上で最も小さい整数を戻します。 |
floor |
|
floorは、n以下で最も大きい整数を戻します。 |
round (SQL関数) |
|
ROUNDは、numberを、小数点以下第integer位に丸めて戻します。integerを省略すると、numberは小数点以下ゼロに丸められます。integerに負数を指定すると、小数点の左側(整数部)の指定桁位置で切捨て処理できます。integerには整数を指定する必要があります。例: |
round (XSLT関数) |
|
ROUNDは、numberを、小数点以下第integer位に丸めて戻します。integerを省略すると、numberは小数点以下ゼロに丸められます。integerに負数を指定すると、小数点の左側(整数部)の指定桁位置で切捨て処理できます。integerには整数を指定する必要があります。例: |
lower |
|
lowerは、charをすべて小文字で戻します。charには、CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOBまたはNCLOBのいずれかのデータ型を使用できます。戻り値はcharと同じデータ型になります。 |
upper |
|
upperは、charをすべて大文字で戻します。charには、CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOBまたはNCLOBのいずれかのデータ型を使用できます。戻り値はcharと同じデータ型になります。 |
length |
|
length関数は、charの長さを戻します。lengthは、入力文字セットによって定義されたキャラクタを使用して長さを計算します。 |
greatest |
|
greatestは、exprのリストの最大を戻します。比較の前にexprの2番目以降すべてが1番目のexprのデータ型に暗黙的に変換されます。 |
least |
|
leastは、exprのリストの最小を戻します。比較の前にexprの2番目以降すべてが1番目のexprのデータ型に暗黙的に変換されます。 |
next_element |
|
現在のグループにおいて次の要素を取得します。element-nameの次にある要素を戻します。例: |
prev_element |
|
現在のグループにおいて前の要素を取得します。element-nameの前にある要素を戻します。例: |
set_array |
|
ハッシュテーブルに値を設定します。構文は、 |
get_array |
|
ハッシュテーブルの指定されたインデックスの値を戻します。構文は、 |
次の表に、サポートされている組合せ関数を示します。
SQL文 | 使用方法 |
---|---|
(2+3/4-6*7)/8 |
|
lpad(substr('1234567890',5,3),10,'^') |
|
decode('a','b','c','d','e','1')||instr('321',1,1) |
|
この関数を使用すると、RTFテンプレート出力を数値から単語へ変換できます。
これは、小切手印刷における一般的な要件です。
この新しい関数はto_check_numberです。構文は次のとおりです。
<?xdofx:to_check_number(amount, precisionOrCurrency, caseType, decimalStyle)?>
次の表に、この関数の属性の説明を示します。
属性 | 説明 | 有効な値 |
---|---|---|
amount |
変換する数値です。 |
任意の数値 |
precisionOrCurrency |
この属性では、小数点以下の桁数を表す精度、または小数点以下の桁数を決定する通貨コードのいずれかを指定できます。通貨コードは、出力で通貨記号を生成しません。 |
2などの整数またはUSDなどの通貨コード |
caseType |
出力の大文字、小文字の種類です。 |
有効値:'CASE_UPPER','CASE_LOWER','CASE_INIT_CAP' |
decimalStyle |
小数部分の出力タイプです。 |
有効値:'DECIMAL_STYLE_FRACTION1', 'DECIMAL_STYLE_FRACTION2','DECIMAL_STYLE_WORD' |
次の表は、RTFテンプレートに入力される関数の例と、返される出力を示しています。
RTFテンプレートの入力 | 返される出力 |
---|---|
<?xdofx:to_check_number(12345.67, 2)?> |
Twelve thousand three hundred forty-five and 67/100 |
<?xdofx:to_check_number(12345.67, 'USD')?> |
Twelve thousand three hundred forty-five and 67/100 |
<?xdofx:to_check_number(12345, 'JPY', 'CASE_UPPER')?> |
TWELVE THOUSAND THREE HUNDRED FORTY-FIVE |
<?xdofx:to_check_number(12345.67, 'EUR', 'CASE_LOWER', 'DECIMAL_STYLE_WORDS')?> |
twelve thousand three hundred forty-five and sixty-seven |
BI Publisherでは、XSLと同等の構文が提供されます。
次の表に、BI Publisherの簡略化された構文をXSLの同等要素とともに示します。
サポートされているXSL要素 | 説明 | BI Publisherの構文 |
---|---|---|
|
プレースホルダの構文 |
|
|
現行要素の子ノードにテンプレート・ルールを適用します。 |
|
|
現行ノードのコピーを作成します。 |
|
|
現行のテンプレートに挿入/適用される名前付きテンプレートをコールします。 |
|
<xsl:sort select="name"> |
データセット内の要素に基づいてデータのグループをソートします。 |
|
<xsl:for-each select="name |
表出力の生成に使用されるグループのデータ行をループします。 |
|
|
複数条件テストを表すためにwhenおよびotherwiseとともに使用されます。 |
|
|
複数条件テストを表すためにchooseおよびotherwiseとともに使用されます。 |
|
|
複数条件テストを表すためにchooseおよびwhenとともに使用されます。 |
|
|
条件付き書式設定に使用されます。 |
|
|
テンプレートの宣言 |
|
|
ローカル変数またはグローバル変数の宣言。 |
|
|
スタイルシートの内容を別のスタイルシートにインポートします。 |
|
|
スタイルシートを別のスタイルシートに組み込みます。 |
|
|
スタイルシートのルート要素を定義します。 |
|
RTFテンプレートのMicrosoft Wordフォームの各フィールド内で、ほとんどのFO要素を使用できます。
次の表にリストされているFO要素は、BI PublisherのRTFテンプレートで使用できるように拡張されています。BI Publisherの構文は、いずれかのRTFテンプレート方式で使用できます。
BI PublisherでサポートされるFO要素の全リストは、「サポートされているXSL-FO要素」を参照してください。
FO要素 | BI Publisherの構文 |
---|---|
<fo:page-number-citation ref-id="id"> |
<?fo:page-number-citation:id?> |
<fo:page-number> |
<?fo:page-number?> |
<fo:ANY NAME WITHOUT ATTRIBUTE> |
<?fo:ANY NAME WITHOUT ATTRIBUTE?> |