<xsql:ref-cursor-function>

REFカーソルを返す任意のストアド・ファンクションを実行し、結果セットを標準のXML形式でインクルードします。

XSQL構文

<xsql:ref-cursor-function
 [ id-attribute="string" ]
 [ id-attribute-column="string" ]
 [ max-rows="integer" ]
 [ null-indicator="boolean" ]
 [ row-element="string" ]
 [ rowset-element="string" ]
 [ skip-rows="integer" ]
 [ tag-case="string" ]
>
PLSQL
</xsql:ref-cursor-function>

次の例では、REFカーソルを返すストアド・ファンクションを実行し、結果をXML形式でインクルードします。

<xsql:ref-cursor-function max-rows="5" tag-case="lower" null-indicator="yes">
 flight_schedule.flights_left_today_for(UPPER('{@airport}'));
</xsql:ref-cursor-function>

次の例では、問合せに対してカーソルを返す、ストアド・プロシージャDynamicQueryを実行します。

<xsql:ref-cursor-function>
  RefCursorExample.DynamicQuery('{@param1}');
</xsql:ref-cursor-function>

次に、問合せに対してカーソルを返す、ストアド・プロシージャDynamicQueryを示します。

CREATE OR REPLACE PACKAGE RefCursorExample IS
TYPE ref_cursor IS REF CURSOR;
FUNCTION DynamicQuery(userid VARCHAR2) RETURN ref_cursor;
END;
/

CREATE OR REPLACE PACKAGE BODY RefCursorExample IS
FUNCTION DynamicQuery(userid VARCHAR2) RETURN ref_cursor IS
the_cursor ref_cursor;
my_sal NUMBER := 1;
query VARCHAR2(2000);

BEGIN
IF UPPER(userid) = 'STEVE' THEN
query := 'SELECT ename, sal FROM EMP WHERE ROWNUM < 4';
ELSE
query := 'SELECT dname, deptno FROM DEPT WHERE ROWNUM < 2';
END IF;
OPEN the_cursor FOR query; /* USING var, var, var */
RETURN the_cursor;
END;
END;
/

説明

REFカーソルを返す任意のストアド・ファンクションを実行し、結果セットを標準のXML形式でインクルードします。ウィザードの「問合せ」パネルで、必要なPL/SQLコードまたはストアド・プロシージャ名を入力します。

このタグは、問合せ内容を決定し、問合せに対してカーソルを返すストアド・プロシージャをコールする際に使用します。この場合、タグでは弱いレベルのセキュリティが提供され、問合せを直接参照できないように隠すことができます。詳細は、例を参照してください。

属性

注意: row-elementとrowset-elementの両方を空白値(" ")に設定してから複数の行を返す問合せを実行すると、文書が適切に作成されていないことを示すエラーがパーサーにより返されます。

 

 

Copyright © 1997, 2004, Oracle. All rights reserved.