如何使用存储过程像MSSQL的存储过程 能够返回一个结果集 这个我也略有所知我现在需要一个实例 ! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如何返回结果集?"天啦.Oracle的sp不能返回结果集!!!"……在SQL Server Oracle的工作中你是否会发出这样的惊呼?……在Oracle的任何PL/SQL语句块中所有的select语句必须要有into子句!这就是Oracle的sp不能返回结果集的原因!任何的事情都有其解决的办法,你千万不要为此而气馁.下面的是解决的例程:create or replace package pkg_test astype cur_test is ref cursor; -- 定义一个cursor的typeend pkg_test;/create or replace procedure p_test(v_cur out pkg_test.cur_test)asv_sql varchar2(100); -- beginv_sql := 'select a1,a2 from test';OPEN v_cur FOR v_sql; --exceptionwhen others then DBMS_OUTPUT.PUT_LINE('Error ---------------' || sqlcode || ' : ' || sqlerrm ); end p_test;/Java程序:……CallableStatement call = conn.prepareCall("{ call p_test(?) }");call.registerOutParameter(1, OracleTypes.CURSOR);// 注册out参数的SQL数据类型call.execute();ResultSet rs=(ResultSet)call.getObject(1);// 取得得数据结果集合while(rs.next())…… 问一句SQL写法 crsd.bin进程老是core dump Oracle 日期格式化问题,在线等. 如何做用户浏览轨迹统计 Oracle 行变列的问题,急急!! ORACLE 竖表转横表的问题 如何按秒来计算两个时间的差,谢谢 请大家帮忙优化一个多表查询的问题 oracle PL/SQL 编程优化! 帮忙看一下这段分月统计的SQL DDL Trigger的问题 关于select 赋值的问题!很简单的
"天啦.Oracle的sp不能返回结果集!!!"……
在SQL Server Oracle的工作中你是否会发出这样的惊呼?……
在Oracle的任何PL/SQL语句块中所有的select语句必须要有into子句!
这就是Oracle的sp不能返回结果集的原因!
任何的事情都有其解决的办法,你千万不要为此而气馁.下面的是解决的例程:
create or replace package pkg_test
as
type cur_test is ref cursor; -- 定义一个cursor的type
end pkg_test;
/
create or replace procedure p_test
(
v_cur out pkg_test.cur_test
)
as
v_sql varchar2(100); --
begin
v_sql := 'select a1,a2 from test';
OPEN v_cur FOR v_sql; --
exception
when others then
DBMS_OUTPUT.PUT_LINE('Error ---------------' || sqlcode || ' : ' || sqlerrm );
end p_test;
/
Java程序:
……
CallableStatement call = conn.prepareCall("{ call p_test(?) }");
call.registerOutParameter(1, OracleTypes.CURSOR);// 注册out参数的SQL数据类型
call.execute();
ResultSet rs=(ResultSet)call.getObject(1);// 取得得数据结果集合
while(rs.next())
……