キャラクタ・ラージ・オブジェクト(CLOB)として格納されているデータのデータ・モデルでの使用
「パブリッシャ」は、データ・モデルでキャラクタ・ラージ・オブジェクト(CLOB)データ型として格納されるデータの使用をサポートします。 この機能を使用すると、別のプロセスで生成され、データベースに「パブリッシャ」データ・モデルへの入力として格納されるXMLデータを使用できます。
クエリー・ビルダーを使用してSQL問合せ内の列を取得し、次にデータ・モデル・エディタを使用して、データを構造化する方法を指定します。 データ・モデルが実行されるとき、データ・エンジンは次のいずれかのようにデータを構造化できます:
-
レポートに表示可能なXMLタグ名内のプレーン文字セット(アイテムの説明など)
-
構造化されたXML
データに改行やキャリッジ・リターンが含まれていないことを確認します。 データの改行と改行は、レポート・レイアウトで想定どおりにレンダリングされない場合があります。
CLOBとして格納されたデータからデータセットを作成するには:
データの返却方法
問合せの実行時に、CLOB列が整形式XMLを含み、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データの抽出方法について説明します:
レポートでのHTMLマークアップのレンダリングをサポートするRTFテンプレートのみ。
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問合せで次の構文を使用して、SQL問合せを取得し、CDATAセクションでラップします:
select '<![CDATA' || '['|| CLOB_DATA || ']' || ']>' as "RTECODE"from MYTABLE
データ・モデル・エディタで、RTECODE列のデータ型をXMLに設定します。