doc-exports/docs/dws/tool/dws_mt_0302.html
Lu, Huayi 346ac31da9 DWS TG 8.1.3.200 VERSION
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Reviewed-by: Jiang, Beibei <beibei.jiang@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2023-08-28 09:20:17 +00:00

63 lines
2.9 KiB
HTML

<a name="EN-US_TOPIC_0000001234042175"></a><a name="EN-US_TOPIC_0000001234042175"></a>
<h1 class="topictitle1">REF CURSOR</h1>
<div id="body8662426"><p id="EN-US_TOPIC_0000001234042175__en-us_topic_0238518408_en-us_topic_0237362354_en-us_topic_0202727407_p8611163594313">REF Cursor is a data type that can store the database cursor values and is used to return query results. DSC supports migration of REF CURSOR. The example below shows how the DSC migrates <strong id="EN-US_TOPIC_0000001234042175__en-us_topic_0237712617_b4198172017473">lref_strong_emptyp</strong> (local REF CURSOR) and ref_strong_emptyp (package-level REF CURSOR).</p>
<p id="EN-US_TOPIC_0000001234042175__en-us_topic_0238518408_en-us_topic_0237362354_en-us_topic_0202727407_p1050535822219"><strong id="EN-US_TOPIC_0000001234042175__en-us_topic_0237712617_b543818813814">Input - REF CURSOR in PL/SQL Package </strong>(Package Specification and Body)</p>
<pre class="screen" id="EN-US_TOPIC_0000001234042175__en-us_topic_0238518408_en-us_topic_0237362354_en-us_topic_0202727407_screen765225513104"># Package specification
CREATE OR REPLACE PACKAGE pkg_refcur
IS
TYPE ref_variable IS REF CURSOR;
TYPE ref_strong_emptyp IS REF CURSOR RETURN emp_o%ROWTYPE;
PROCEDURE p_get_employees ( v_id in INTEGER ,po_results OUT ref_strong_emptyp );
END pkg_refcur ;
/
# Package body
CREATE OR REPLACE PACKAGE BODY pkg_refcur
IS
TYPE lref_strong_emptyp IS REF CURSOR RETURN emp_o%ROWTYPE ;
var_num NUMBER ;
PROCEDURE p_get_employees ( v_id IN INTEGER, po_results OUT ref_strong_emptyp )
is
vemp_rc lref_strong_emptyp ;
Begin
OPEN po_results for
SELECT * FROM emp_o e
WHERE e.id = v_id;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END p_get_employees;
END pkg_refcur;
/</pre>
<p id="EN-US_TOPIC_0000001234042175__en-us_topic_0238518408_en-us_topic_0237362354_en-us_topic_0202727407_p950855813225"><strong id="EN-US_TOPIC_0000001234042175__en-us_topic_0237712617_b14895441185412">Output</strong></p>
<pre class="screen" id="EN-US_TOPIC_0000001234042175__en-us_topic_0238518408_en-us_topic_0237362354_en-us_topic_0202727407_screen770818721120">BEGIN
INSERT INTO MIG_ORA_EXT.MIG_PKG_VARIABLES ( SCHEMA_NAME ,PACKAGE_NAME ,SPEC_OR_BODY ,VARIABLE_NAME ,VARIABLE_TYPE ,CONSTANT_I ,DEFAULT_VALUE ,EXPRESSION_I )
VALUES ( UPPER( current_schema ( ) ) ,UPPER( 'pkg_refcur' ) ,'B' ,UPPER( 'var_num' ) ,UPPER( 'NUMBER' ) ,false ,NULL ,false ) ;
END ;
/
CREATE
OR REPLACE PROCEDURE pkg_refcur#p_get_employees ( v_id IN INTEGER ,po_results OUT SYS_REFCURSOR ) is vemp_rc SYS_REFCURSOR ;
Begin
OPEN po_results for SELECT
*
FROM
emp_o e
WHERE
e.id = v_id ;
EXCEPTION WHEN OTHERS
THEN RAISE ;
END ;
/</pre>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_mt_0156.html">PL/SQL Packages</a></div>
</div>
</div>