java调用oracle存储过程无法获得正确的返回值,每次都是0

java调用oracle存储过程无法获得正确的返回值,每次都是0,第1张

你通过JDBC这种方式调用存储过程,应该使用 CallableStatement 类, CallableStatement cs=connprepareCall(str);

补充一句,避免你在执行有错,

csexcuse();这个方法为执行,然后在获取输出参数。另外写输出参数的类型时,直Types类型即可,不用带包。

C#调用oracle存储过程 最简单的实例

Oracle方面

1.创建Oracle过程存储

create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2)

as

varparam varchar2(28);

begin

varparam:=paramin;

paramout:=varparam|| paraminout;

end;

2.测试过程存储

declare

param_out varchar2(28);

param_inout varchar2(28);

begin

param_inout:='ff';

proce_test('dd',param_out,param_inout);

dbms_outputput_line(param_out);

end;

C#方面

引用Oracle组件

using System;

using SystemData;

using SystemDataOracleClient;

namespace WebApplication4

{

public class OraOprater

{

private OracleConnection conn=null;

private OracleCommand cmd=null;

public OraOprater()

{

string mConn="data source=ora9ioracom;user id=ora;password=ora"; //连接数据库

conn=new OracleConnection(mConn);

try

{

connOpen();

cmd=new OracleCommand();

cmdConnection=conn;

}

catch(Exception e)

{

throw e;

}

}

public string SpExeFor(string m_A,string m_B)

{

//存储过程的参数声明

OracleParameter[] parameters={

new OracleParameter("paramin",OracleTypeVarChar,20),

new OracleParameter("paramout",OracleTypeVarChar,20),

&

nbsp; new OracleParameter("paraminout",OracleTypeVarChar,20)

};

parameters[0]Value=m_A;

parameters[2]Value=m_B;

parameters[0]Direction=ParameterDirectionInput;

parameters[1]Direction=ParameterDirectionOutput;

parameters[2]Direction=ParameterDirectionInputOutput;

try

{

RunProcedure("proce_test",parameters);

return parameters[1]ValueToString();

}

catch(Exception e)

{

throw e;

}

}

private void RunProcedure(string storedProcName,OracleParameter[] parameters)

{

cmdCommandText=storedProcName;//声明存储过程名

cmdCommandType=CommandTypeStoredProcedure;

foreach(OracleParameter parameter in parameters)

{

cmdParametersAdd(parameter);

}

cmdExecuteNonQuery();//执行存储过程

}

}

}

测试结果:ddff

以上就是关于java调用oracle存储过程无法获得正确的返回值,每次都是0全部的内容,包括:java调用oracle存储过程无法获得正确的返回值,每次都是0、ORACLE 使用存储过程或者函数返回TYPE、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9792786.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存