キャラクタ・ラージ・オブジェクト(CLOB)として格納されたデータのデータ・モデル内での使用
Publisherでは、キャラクタ・ラージ・オブジェクト(CLOB)データ型として格納されたデータのデータ・モデル内での使用をサポートしています。この機能により、別のプロセスで生成されてデータベースに格納されているXMLデータを、Publisherデータ・モデルへの入力として使用できます。
クエリー・ビルダーを使用して、SQL問合せで列を取得してから、データ・モデル・エディタを使用して、必要なデータ構造を指定します。データ・モデルの実行時に、データ・エンジンは次のいずれかの形式でデータを構造化します。
-
レポートに表示できるXMLタグ名内のプレーンな文字セット(例: 項目の説明)
-
構造化XML
データに行送りおよび改行が含まれていないことを確認してください。データ内の改行およびキャリッジ・リターンは、レポートのレイアウトで想定したようにレンダリングされないことがあります。
CLOBとして格納されたデータからデータ・セットを作成するには:
データが返される方法
問合せの実行時、CLOB列に整形式XMLが含まれていると、データ・エンジンはCLOB列のタグ名内に構造化されたXMLデータを返します。
データ型がXMLの場合の出力例:
<DESCRIPTION>要素には、次に示されているようにCLOB列内に格納されたXMLデータが含まれています。
データ型がCLOBの場合の出力例:
CLOBデータ型としてデータが返されるように選択している場合、返されるデータは次に示されているように構造化されます。
CLOB列データを使用したデータ・セットのノート
詳細は、CLOB列データで参照できます。
バースティング問合せでCLOB列データを使用する際に特有のノートは、SQL問合せを使用したデータ・モデルへのバースティング定義の追加を参照してください。
CLOB列に格納されたXHTMLデータの処理
データベースのCLOB列に格納されたXHTMLドキュメントのデータにより、生成されたレポートにマークアップをレンダリングできます。
レポート・レンダリング・エンジンでマークアップ・タグを処理できるようにするには、データ・エンジンによって渡されるXMLレポート・データ内のCDATAセクションでXHTMLデータをラップする必要があります。
CDATAセクションでラップされたデータをデータベースに格納することをお薦めします。これにより、単純なSELECT文を使用してデータを抽出できます。データがCDATAセクションでラップされていない場合は、データをラップするためにSQL文の命令に含める必要があります。
次の各項では、それぞれの場合でXHTMLデータを抽出する方法について説明しています。
RTFテンプレートでのみ、レポート内でのHTMLマークアップのレンダリングがサポートされます。
CDATA内にラッピングされたXHTMLデータの取得
ここでは、次のデータがCLOB_DATAというデータベース列に格納されていると仮定します。
<![CDATA[
<p><font style="font-style: italic; font-weight: bold;" size="3">
<a href="http://www.oracle.com">oracle</a></font> </p>
<p><font size="6"><a href="http://docs.oracle.com/">Oracle Documentation</a>
</font></p>
]]>
次の例に示すような単純なSQL文を使用して列データを取得します。
select CLOB_DATA as "RTECODE" from MYTABLE
次に示されているように、データ・モデル・エディタでRTECODE列のデータ型をXMLに設定します。
問合せでのCDATA内へのXHTMLデータのラッピング
このエクササイズでは、次のデータが"CLOB_DATA"というデータベース列に格納されていることを前提としています。
<p><font style="font-style: italic; font-weight: bold;" size="3">
<a href="http://www.oracle.com">oracle</a></font> </p>
<p><font size="6"><a href="http://docs.oracle.com/">Oracle Documentation</a>
</font></p>
次の構文をSQL問合せ内で使用して、そのデータを取得し、それをCDATAセクション内にラッピングします。
select '<![CDATA' || '['|| CLOB_DATA || ']' || ']>' as "RTECODE"from MYTABLE
データ・モデル・エディタで、RTECODE列のデータ型をXMLに設定します。