pl/sql 存储过程调用 带cursor输出参数
我对oracle和pl/sql的存储过程不是很熟悉,如图右边提示的框说明了还差一个输出参数,类型是cursor.这个存储过程怎么调用和打印结果,求oracle大神...
我对oracle和pl/sql的存储过程不是很熟悉,如图右边提示的框说明了还差一个输出参数,类型是cursor.这个存储过程怎么调用和打印结果,求oracle大神
展开
1个回答
展开全部
1.创建表T_MONITOR_DEVICE
创建后的表结构
2.创建存储过程
create or replace procedure ProcTestNew(v_monitordeviceid in number,curdata out sys_refcursor )
As
begin
open curdata for
select ID, IP,PORT from T_MONITOR_DEVICE where id=v_monitordeviceid;--带参数测试
-- select ID, IP,PORT from T_MONITOR_DEVICE;
end ProcTestNew;
二.java程序中调用
public void TestProc()
{
Connection conn=null;
ResultSet rs=null;
try {
//this.getSession()为hibernate中的Session对象
conn = SessionFactoryUtils.getDataSource(this.getSession().getSessionFactory()).getConnection();
CallableStatement proc = conn.prepareCall("{call ProcTestNew(?,?) }");
BigDecimal b1 = new BigDecimal(1176);
proc.setBigDecimal(1, b1);
proc.registerOutParameter(2, OracleTypes.CURSOR);
创建后的表结构
2.创建存储过程
create or replace procedure ProcTestNew(v_monitordeviceid in number,curdata out sys_refcursor )
As
begin
open curdata for
select ID, IP,PORT from T_MONITOR_DEVICE where id=v_monitordeviceid;--带参数测试
-- select ID, IP,PORT from T_MONITOR_DEVICE;
end ProcTestNew;
二.java程序中调用
public void TestProc()
{
Connection conn=null;
ResultSet rs=null;
try {
//this.getSession()为hibernate中的Session对象
conn = SessionFactoryUtils.getDataSource(this.getSession().getSessionFactory()).getConnection();
CallableStatement proc = conn.prepareCall("{call ProcTestNew(?,?) }");
BigDecimal b1 = new BigDecimal(1176);
proc.setBigDecimal(1, b1);
proc.registerOutParameter(2, OracleTypes.CURSOR);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询