日期:2014-05-17  浏览次数:20656 次

oracle 函数和存储过程的用法
我想问下,在oracle中,其函数是有返回值的,那这个返回值是去什么地方了?比如说,一个java程序调用oracle的一个函数,其返回值是不是去java程序调用方那边了?

存储过程是通过参数来返回数据的,那如果java调用一个存储过程,其返回数据是不是返回到java程序调用方那边了?

------解决方案--------------------
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html
------解决方案--------------------
要用一个传出型参数,接收oracle返回的值.
Java不懂,没办法用例子
------解决方案--------------------
C# code

更正下
DataSet dsReturn = new DataSet();
//调用存储过程
string cmdText = "procedureTest";
DbCommand cmd = db.GetStoredProcCommand(cmdText);

#region 设置参数
//设置输入参数
db.AddInParameter(cmd, "p_paraA", DbType.AnsiString, 'test');
//设置输出参数
db.AddOutParameter(cmd, "p_paraB", DbType.AnsiString, 200);
#endregion //设置参数
//执行存储过程
db.ExecuteNonQuery(cmd);
#region 取输出参数值
//取 p_paraB
string paraB= Convert.ToString(db.GetParameterValue(cmd, "p_paraB"));

------解决方案--------------------
那是自然了,谁调用,值返回给谁罢。
如果是程序语言调用存储函数,返回值就返回给编程语言。
如果是其它的函数或存储过程调用该存储函数,返回值就返回给其它的函数或存储过程。

一句话:看调用这个函数的宿主就谁。