如何用Oracle存储过程实现返回多行记录

如题所述

第1个回答  2016-11-20
存储过程输出参数为游标类型,给个DEMO给你
CREATE OR REPLACE PROCEDURE SELECTALLUSER(P_ALLUSER OUT SYS_REFCURSOR) IS
BEGIN
OPEN P_ALLUSER FOR
SELECT A.USERID,A.USERNAME,A.REALLYNAME,B.GROUPNAME FROM TBUSERS A,USERGROUP B WHERE A.GROUPID=B.GROUPID;
END SELECTALLUSER;本回答被网友采纳

oracle 如何返回多条记录
SELECT SName INTO stuname FROM Student WHERE SID = stuid;记得一定要用INTO关键字。总之一句话,在Oracle中,在存储过程和函数中都不能直接返回查询结果集(哪怕只有1行1列也不行,这是绝对的),但可以通过变通方式实现。

oracle 存储过程通过输入条件查询,返回多条记录和记录数。
resmessage out varchar) is v_Num number(2);begin select count(*) into v_Num from emp where ename like '%Conditions%';if v_Num = 0 then Codeing := '9999';resmessage := '没有找到需要的数据';else Codeing := '0000';resmessage := '有记录';end if;end Pro_Test;...

如何用Oracle存储过程实现返回多行记录
存储过程输出参数为游标类型,给个DEMO给你 CREATE OR REPLACE PROCEDURE SELECTALLUSER(P_ALLUSER OUT SYS_REFCURSOR) IS BEGIN OPEN P_ALLUSER FOR SELECT A.USERID,A.USERNAME,A.REALLYNAME,B.GROUPNAME FROM TBUSERS A,USERGROUP B WHERE A.GROUPID=B.GROUPID;END SELECTALLUSER;

oracle中的存储过程如何返回查询到的多个值?
oracle不是不能,而是采用的方法不同罢了。可以使用一下方法创建返回结果集的调用:SQL> create or replace package pkg_HelloWorld as 2 -- 定义ref cursor类型 3 type myrctype is ref cursor;4 --函数申明 5 function getHelloWorld return myrctype;6 end pkg_HelloWorld;Package cr...

oracle存储过程实际返回行数
oracle存储过程实际返回行数 CREATE OR REPLACE PROCEDURE OPE_SELECT (loginname_i in TBL_OPERATEINFO.loginname%type,ref_cursor out sys_refcursor ) AS BEGIN open ref_cursor for SELECT name FROM TBL_OPERATEINFO WHERE loginname LIKE '%' || loginname_i || '%' ;END OPE_SELECT...

c#调用oracle存储过程,返回2个值
{ if(ParameterDirection.Output == op.Direction){ result.Add(op);} cmd.Parameters.Add(op);} cmd.CommandText = ProcedureName;cmd.ExecuteNonQuery();for(int i = 0; i < result.Count; i ++){ outresult.Add(((OracleParameter)result[i]).Value);} \/\/返回值在outresult对象中 ...

oracle中游标的作用有哪些?什么情况下使用?
存储过程中查询语句如何返回多行结果?我们知道,如果存储过程中查询语句有多行结果输出,会报错。若想让存储过程中的查询语句返回多行结果不报错,则需要使用游标来实现。本例主要也是用来熟悉存储过程中游标的简单使用方法:SET SERVEROUTPUT ON;create or replace procedure proc_salary is --定义变量 v...

Oracle存储过程返回表记录总数
你应当吧这个结果放到变量里,存储过程是没有返回值的,这样写是不对的,这样 select语句是不支持的create or replace procedure ii is a varchar2(25);begin select count(*) into a from employees;end ii;这样就可以执行了,不过你可以把值放到数组里,自用打印命令打印出来 ...

oracle怎么处理单条查询返回多条
select a,b,a-b from (select to_date(concat('20140723','23:24:00'),'yyyy-mm-dd hh24:mi:ss') as a ,to_date(concat('2014\/7\/23','23:25:00'),'yyyy-mm-dd hh24:mi:ss') as b from dual)A   B   A-B 2014-7-23 PM 11:24:00 2014-7-23 PM ...

oracle 存储过程 实际返回的行数超出请求的行数
定义一个数据类型是游标 然后返回这个数据类型的参数就可以了

相似回答