Oracle 関数から結果のテーブルを返そうとしています。カーソルを使用するのが最も簡単ですが、これを処理する必要があるアプリケーションは、カーソルを戻り値として受け入れません。別の方法として、この関数に対応する型 (パッケージにラップされている可能性が高い) を作成することもできます。ただし、テーブルの結果を返すためだけに、いくつかの型を作成するのはやや不必要に思えます (4 つ以上の関数を作成する必要があります)。私が見逃している代替手段はありますか?
18800 次
2 に答える
1
アプリケーション開発者に適している場合は、常に関数から XML を返すことができます。
XML は、インストールされているものと使用しているバージョンに応じて、Oracle でさまざまな方法で生成できます。
XMLTYPE は特定のコンテキストで非常に役立ち、XMLElement、XMLAttributes、XMLAgg などの組み込み関数を使用して SQL から生成できます。クライアントが XMLTYPE をサポートしていない場合、簡単に CLOB 値にキャストできます。
おそらく最も簡単ですが、最良の (IMO) オプションではありませんが、dbms_xmlgen パッケージを使用することです。
SQL> set serveroutput on size 1000;
SQL> exec dbms_output.put_line( dbms_xmlgen.getXML( 'select * from dual' ) );
出力:
<?xml version="1.0"?>
<ROWSET>
<ROW>
<DUMMY>X</DUMMY>
</ROW>
</ROWSET>
これにより、「テーブル」の結果が単一の CLOB 値になります。
于 2009-03-11T19:59:43.213 に答える