oracle存储过程返回list
Ⅰ oracle存储过程返回参数是一个cursor,怎么转换为list
这里返回的是个结果集.rs.next返回的是一行数据.直接rs.getXXX方法获取.最好先声明一个对象来存放各个值,然后再赋给list.以便于使用.
Ⅱ JAVA获取ORACLE存储过程返回结果集的问题
你存储过程中的 查询集返回语句不是最后一条,如:select * into
v_list from xxxx 要放到过程的最后一句或试下加个return v_list
Ⅲ 关于oracle存储过程返回结果集的问题
游标返回sql是不能添加变量在里面的,要使用动态的sql,
就是 定义 一个 v_sql varhcar2(8000) 的变量。
通过 v_sql := 'select * from tt where to_char(rent.plan_date,''yyyy'')='||new_years
然后 open rent_cur for v_sql;
Ⅳ ORACLE 中 储存过程我现在要传一个参数 得到LIST集合 不要输出参数吧
1.存储过程中:需要定义输出参数 out outlist;
2.Hibernate中接受,使用SQLQuery进行查询,用它的对象调用list方法。
Ⅳ oracle如何执行存储过程以及如何返回一个table
-- 定义类型
CREATE OR REPLACE TYPE MyTable AS OBJECT(A int, B int, C int);
/
CREATE OR REPLACE TYPE MyTableResult IS TABLE OF MyTable;
/
CREATE OR REPLACE FUNCTION getTestTable return MyTableResult
IS
-- 预期返回结果.
return_Result MyTableResult := MyTableResult();
BEGIN
-- 结果追加一行.
return_Result.EXTEND;
-- 设置结果内容.
return_Result(return_Result.COUNT) := MyTable(A => 1, B=>2, C=>3);
-- 结果追加一行.
return_Result.EXTEND;
-- 设置结果内容.
return_Result(return_Result.COUNT) := MyTable(A => 4, B=>5, C=>6);
-- 结果追加一行.
return_Result.EXTEND;
-- 设置结果内容.
return_Result(return_Result.COUNT) := MyTable(A => 7, B=>8, C=>9);
return return_Result;
END getTestTable;
/
SQL> SELECT
2 A, B, C
3 FROM
4 table( getTestTable() );
A B C
---------- ---------- ----------
1 2 3
4 5 6
7 8 9
SQL>
Ⅵ Oracle存储过程怎么返回结果
这个存储过程你可以在TEST的环境下查看结果,不过你需要隐式游标来进行操作,那样才能看到,具体步骤如下:
1、首先我们要借助游标,因此需要先定义一个返回类型的游标
create or replace package type_difinition
as
type mycursor is ref cursor;
end type_difinition;
2、改写你的存储过程,要想查看执行SQL后结果需要一个返回参数,这个参数即上面定义的游标
类型
create or replace procere select_pro(
p_result out type_difinition.mycursor -- 返回结果
)
is
syn_sql varchar2(200) default '';
begin
syn_sql := 'select * from emp';
-- 此处打开游标,并把需执行的SQL赋值给游标
open p_result for syn_sql;
end select_pro;
3、执行编译通过后,右键点击存储过程的名字,跳出框,选择Test一项,进入Test界面
4、点击编译、再点击执行
5、Test界面的底部界面,有个Variable Type value的列表,此时你可以点击Value值里面的
... 按钮,即可查看结果,由于不怎么会应用这个编辑器,本想把图片上传给你,如有不解,再详问,希望回答对楼主有帮助
Ⅶ 帮忙写个oracle 存储过程,可以返回表的所有列的结果集
与SQL Server的存储过程和函数均可以返回结果集不同的是,PL/SQL的存储过程和函数均不直接提供返回数据集的方法,但可以通过返回类型对象来实现返回数据集的效果。具体思路为:
(1)创建包头,在其中声明类型和存储过程,类型应该引用游标;
(2)创建包体,定义存储过程,执行查询,将查询得到的结果集以游标句柄的形式返回。
说明:游标分为显示游标和隐式游标,任何查询结果默认都提供隐式游标,当前方案的重点在于使用游标取得查询结果的句柄,由于游标被引用为类型,通过返回类型,即等效于(并不等同)返回数据集。
具体的案例如下:
--创建包头
create or replace package mypackage1
as
--声明类型,并引用游标
type cursorType is ref cursor;
--声明存储过程,两个输入参数,一个输出参数,输出游标类型数据
procere prcGetGlobalAddress
(
cur in out mypackage1.cursorType --输出参数,数据类型为引用游标的类型
);
end mypackage1;
--创建包体
create or replace package body mypackage1
as
--定义存储过程
procere prcGetGlobalAddress
(
cur in out mypackage1.cursorType
)
as
begin
--返回得到分页查询结果集的游标句柄
open cur for
select * from mytable;
end prcGetGlobalAddress;
end mypackage1;
Ⅷ oracle存储过程怎么返回结果集
你这不是已经写好了嘛。
外层调用程序只要声明变量mycursor并且作为参数传到emp_pro存储过程中,执行结束后就可以使用了。