create table s(swmc varchar2(2000),swbm varchar2(9));insert into s values('abcdef','213050001');
insert into s values('qwerty','213050002');
insert into s values('zxcvbn','213050003');create table o(login_name varchar2(10),swbm varchar2(9));insert into o values('zhangsan','213050001');
insert into o values('lisi','213050002');
insert into o values('lisi','213050003');commit;create or replace package testpkg1 as
type c_cur is ref cursor;
end;create or replace procedure get_swmc(v_login_name in varchar2,c_swmc out testpkg1.c_cur) is
begin
open c_swmc for select swmc from s where exists (select 1 from o where s.swbm=o.swbm and o.login_name=v_login_name);
end;然后问:我怎么把c_swmc游标里的值打出来?输出的样子如下:
SWMC
----------
qwerty
zxcvbn
本人菜鸟,想学sql,谢谢各位!
解决方案 »
- 求助:conn sys/sys@orcl
- 这样的PL/SQL怎么写?
- 有关oracle10g全文索引中world lexer设置的问题
- ora-04031报错,请帮忙看看。
- 常用数据库 我发现我在两个不同的数据库中的表进行关联是并不会,比如,像一个数据库中的表和另一个数据库中的表进行合并成一个表 这个应该怎么做呢?
- oracle查看系统日志
- 编译php5.2.8时,加上--with-oci8选项后make出错
- 处理blob字段里的自定义类型单元数据
- ~~怎样追踪一段时间内对数据库中的表进行的操作~~
- http://otn.oracle.com/documentation里面的文章怎样才能看啊?
- sqlldr skip参数遇到的问题!
- em使用异常,求建议
set serveroutput on
declare
v_login_name varchar2(10):='lisi';
rec s.swmc%type;
cur testpkg1.c_cur;
begin
get_swmc(v_login_name,cur);
dbms_output.put_line('SWMC ');
dbms_output.put_line('--------- ');
loop
fetch cur into rec;
exit when cur%notfound;
dbms_output.put_line(rec);
end loop;
end;
/