select * from temp where tid=1; 返回的数据有多条? 如果只返回一条 用 select * from temp where tid=1 and rownum <2; 试试
set serveroutput on; --调用 declare one temp%rowtype; begin ppp(one); dbms_output.put_line(one.tid); dbms_output.put_line(one.tname); end;
(1)我想通过这个存储过程返回一行数据,可老是有报错,以上语句错哪儿了?如果想得到返回的一行数据应该怎么做? 解:call ppp(one); 调用的时候去掉call 执行使用ppp(one)(2)如何通过游标返回一个结果集? 在sqlplus中建立如下的内容: 1、程序包SQL> create or replace package types 2 as 3 type cursorType is ref cursor; 4 end; 5 /程序包已创建。2、函数 SQL> create or replace function sp_ListEmp return types.cursortype 2 as 3 l_cursor types.cursorType; 4 begin 5 open l_cursor for select id, title from cf_news order by id;--表的名字 6 return l_cursor; 7 end; 8 /函数已创建。3、过程SQL> create or replace procedure getemps( p_cursor in out types.cursorType ) 2 as 3 begin 4 open p_cursor for select id, title from cf_news order by id;--表的名字 5 end; 6 /过程已创建。
返回的数据有多条?
如果只返回一条
用 select * from temp where tid=1 and rownum <2; 试试
set serveroutput on;
--调用
declare
one temp%rowtype;
begin
ppp(one);
dbms_output.put_line(one.tid);
dbms_output.put_line(one.tname);
end;
解:call ppp(one); 调用的时候去掉call 执行使用ppp(one)(2)如何通过游标返回一个结果集?
在sqlplus中建立如下的内容:
1、程序包SQL> create or replace package types
2 as
3 type cursorType is ref cursor;
4 end;
5 /程序包已创建。2、函数
SQL> create or replace function sp_ListEmp return types.cursortype
2 as
3 l_cursor types.cursorType;
4 begin
5 open l_cursor for select id, title from cf_news order by id;--表的名字
6 return l_cursor;
7 end;
8 /函数已创建。3、过程SQL> create or replace procedure getemps( p_cursor in out types.cursorType )
2 as
3 begin
4 open p_cursor for select id, title from cf_news order by id;--表的名字
5 end;
6 /过程已创建。