oracle游标变量refcursor详解

oracle游标变量refcursor详解


2024年4月10日发(作者:)

4. exec strongly_(8);

2、弱类型游标:

[sql]

1. CREATE OR REPLACE PROCEDURE child (

2. p_NumRecs IN PLS_INTEGER,

3. p_return_cur OUT SYS_REFCURSOR)

4. IS

5.

6. BEGIN

7. OPEN p_return_cur FOR

8. 'SELECT * FROM all_tables WHERE rownum <= ' || p_NumRecs ;

9. END child;

10. /

11.

12. CREATE OR REPLACE PROCEDURE parent (pNumRecs VARCHAR2) IS

13. p_retcur SYS_REFCURSOR;

14. at_rec all_tables%ROWTYPE;

15. BEGIN

16. child(pNumRecs, p_retcur);

17.

18. FOR i IN 1 .. pNumRecs

19. LOOP

20. FETCH p_retcur

21. INTO at_rec;

22.

23. dbms__line(at__name ||

24. ' - ' || at_pace_name ||

25. ' - ' || TO_CHAR(at_l_extent) ||

26. ' - ' || TO_CHAR(at__extent));

27. END LOOP;

28. END parent;

29. /

30.

31. set serveroutput on

32.

33. exec parent(1);

34. exec parent(17);

3、预定义游标变量:

[sql]

1. CREATE TABLE employees (

2. empid NUMBER(5),

3. empname VARCHAR2(30));

4.

5. INSERT INTO employees (empid, empname) VALUES (1, 'Dan Morgan');

6. INSERT INTO employees (empid, empname) VALUES (2, 'Hans Forbrich');

7. INSERT INTO employees (empid, empname) VALUES (3, 'Caleb Small');

8. COMMIT;

9. CREATE OR REPLACE PROCEDURE pass_ref_cur(p_cursor SYS_REFCURSOR) IS

10.

11. TYPE array_t IS TABLE OF VARCHAR2(4000)

12. INDEX BY BINARY_INTEGER;

13.

14. rec_array array_t;

15.

16. BEGIN

17. FETCH p_cursor BULK COLLECT INTO rec_array;

18.

19. FOR i IN rec_ .. rec_

20. LOOP

21. dbms__line(rec_array(i));

22. END LOOP;

23. END pass_ref_cur;

24. /

25. set serveroutput on

26.

27. DECLARE

28. rec_array SYS_REFCURSOR;

29. BEGIN

30. OPEN rec_array FOR

31. 'SELECT empname FROM employees';

32.

33. pass_ref_cur(rec_array);

34. CLOSE rec_array;

35. END;

36. /


发布者:admin,转转请注明出处:http://www.yc00.com/news/1712758473a2117398.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信