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, 2006, Oracle. All rights reserved.