| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
| SQL> select * from test1; A ---------- 1 1 2 3 SQL> select * from test2; ID NAME ---------- ------------------------------------------ 网管下载dl.bitscn.com 1 yuechaotian1 2 yuechaotian2 3 yuechaotian3 4 yuechaotian4 5 yuechaotian5 |
| SQL> select id, name, (select a from test1 where a = test2.id) 2 from test2; select id, name, (select a from test1 where a = test2.id) * ERROR 位于第 1 行: ORA-01427: 单行子查询返回多个行 |
| SQL> set serveroutput on SQL> declare 网管bitscn_com 2 cursor cur_test2 is 3 select id, name, cursor(select a from test1 where a = test2.id) 4 from test2; 5 rec_test2 test2%rowtype; 6 7 cur_test1 sys_refcursor; 8 rec_test1 test1%rowtype; 9 begin 10 open cur_test2; 11 loop 12 fetch cur_test2 into rec_test2.id, rec_test2.name, cur_test1; 13 exit when cur_test2%notfound; 14 dbms_output.put_line('rec_test2.id: ' || rec_test2.id || ' | rec_test2.name: ' || rec_test2.name); 15 -- 这里不需要再显式 OPEN 游标 cur_test1,也不需要显式关闭 16 loop 17 fetch cur_test1 into rec_test1; 网管网www.bitscn.com 18 exit when cur_test1%notfound; 19 dbms_output.put_line( 'rec_test1.a: ' || rec_test1.a ); 20 end loop; 21 end loop; 22 close cur_test2; 23 end; 24 / rec_test2.id: 1 | rec_test2.name: yuechaotian1 rec_test1.a: 1 rec_test1.a: 1 rec_test2.id: 2 | rec_test2.name: yuechaotian2 rec_test1.a: 2 rec_test2.id: 3 | rec_test2.name: yuechaotian3 rec_test1.a: 3 rec_test2.id: 4 | rec_test2.name: yuechaotian4 rec_test2.id: 5 | rec_test2.name: yuechaotian5 PL/SQL 过程已成功完成。 |
|
1
|
评论加载中…