package返回带cursor的过程的问题,如何调用
c#里,这样好像不对
OracleCommand cmds = new OracleCommand("PKG_SEARCH.PRO_SEARCH_VM", OracleOP.conn);
cmds.CommandType = CommandType.StoredProcedure; cmds.Parameters.Add("myzm", OracleType.VarChar);
cmds.Parameters.Add("myzl", OracleType.VarChar); OracleParameter sOut = cmds.Parameters.Add("myOUT", OracleType.VarChar, 20);
OracleParameter syxqz = cmds.Parameters.Add("yxqz", OracleType.DateTime);
OracleParameter mycur = cmds.Parameters.Add("mycur_vM", OracleType.Cursor, 50); cmds.Parameters[0].Value = DropDownList1.SelectedValue.ToString();
cmds.Parameters[1].Value = TextBox1.Text.ToUpper();
sOut.Direction = ParameterDirection.Output;
syxqz.Direction = ParameterDirection.Output;
mycur.Direction = ParameterDirection.Output;
OracleOP.OpenConnection();
cmds.ExecuteReader(); OracleOP.CloseConnection(); string re = sOut.Value.ToString();运行有错误。ORA-24338: 未执行语句句柄说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OracleClient.OracleException: ORA-24338: 未执行语句句柄
源错误:
行 39:
行 40:
行 41: cmds.ExecuteReader();
行 42: //cmds.ExecuteNonQuery();
行 43: OracleOP.CloseConnection();
源文件: d:\My Documents\My Soft\OTC\Search_adv_veh.aspx.cs 行: 41 堆栈跟踪:
[OracleException (0x80131938): ORA-24338: 未执行语句句柄
]
System.Data.OracleClient.OracleException.Check(OciErrorHandle errorHandle, Int32 rc) +83
System.Data.OracleClient.OciHandle.GetAttribute(ATTR attribute, Int32& value, OciErrorHandle errorHandle) +43
System.Data.OracleClient.OracleDataReader.FillColumnInfo() +51
System.Data.OracleClient.OracleDataReader..ctor(OracleConnection connection, OciStatementHandle statementHandle) +90
System.Data.OracleClient.OracleParameterBinding.GetOutputValue(NativeBuffer parameterBuffer, OracleConnection connection, Boolean needCLSType) +520
System.Data.OracleClient.OracleParameterBinding.PostExecute(NativeBuffer parameterBuffer, OracleConnection connection) +113
System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) +1068
System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals) +25
System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior) +142
System.Data.OracleClient.OracleCommand.ExecuteReader() +6
Search_adv_veh.ButtonSearch_Click(Object sender, EventArgs e) in d:\My Documents\My Soft\OTC\Search_adv_veh.aspx.cs:41
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746
c#里,这样好像不对
OracleCommand cmds = new OracleCommand("PKG_SEARCH.PRO_SEARCH_VM", OracleOP.conn);
cmds.CommandType = CommandType.StoredProcedure; cmds.Parameters.Add("myzm", OracleType.VarChar);
cmds.Parameters.Add("myzl", OracleType.VarChar); OracleParameter sOut = cmds.Parameters.Add("myOUT", OracleType.VarChar, 20);
OracleParameter syxqz = cmds.Parameters.Add("yxqz", OracleType.DateTime);
OracleParameter mycur = cmds.Parameters.Add("mycur_vM", OracleType.Cursor, 50); cmds.Parameters[0].Value = DropDownList1.SelectedValue.ToString();
cmds.Parameters[1].Value = TextBox1.Text.ToUpper();
sOut.Direction = ParameterDirection.Output;
syxqz.Direction = ParameterDirection.Output;
mycur.Direction = ParameterDirection.Output;
OracleOP.OpenConnection();
cmds.ExecuteReader(); OracleOP.CloseConnection(); string re = sOut.Value.ToString();运行有错误。ORA-24338: 未执行语句句柄说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OracleClient.OracleException: ORA-24338: 未执行语句句柄
源错误:
行 39:
行 40:
行 41: cmds.ExecuteReader();
行 42: //cmds.ExecuteNonQuery();
行 43: OracleOP.CloseConnection();
源文件: d:\My Documents\My Soft\OTC\Search_adv_veh.aspx.cs 行: 41 堆栈跟踪:
[OracleException (0x80131938): ORA-24338: 未执行语句句柄
]
System.Data.OracleClient.OracleException.Check(OciErrorHandle errorHandle, Int32 rc) +83
System.Data.OracleClient.OciHandle.GetAttribute(ATTR attribute, Int32& value, OciErrorHandle errorHandle) +43
System.Data.OracleClient.OracleDataReader.FillColumnInfo() +51
System.Data.OracleClient.OracleDataReader..ctor(OracleConnection connection, OciStatementHandle statementHandle) +90
System.Data.OracleClient.OracleParameterBinding.GetOutputValue(NativeBuffer parameterBuffer, OracleConnection connection, Boolean needCLSType) +520
System.Data.OracleClient.OracleParameterBinding.PostExecute(NativeBuffer parameterBuffer, OracleConnection connection) +113
System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals) +1068
System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals) +25
System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior) +142
System.Data.OracleClient.OracleCommand.ExecuteReader() +6
Search_adv_veh.ButtonSearch_Click(Object sender, EventArgs e) in d:\My Documents\My Soft\OTC\Search_adv_veh.aspx.cs:41
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746
解决方案 »
- 如何获得刚刚插入的自增长的ID
- 初学者,问几个.NET水晶报表的问题
- web 层这个DIV区间的背景为什么出来不到,CSS是调用了的!
- .net用户动态添加数据库字段,字段类型或者数据库
- 有一个网站的项目,哪位仁兄可以做,搂主不要删我的帖子~!
- 我想用CHECKBOX控制进入编辑状态?
- 请问为什么这句增加记录的SQL语句在ASP.NET里面会出错,但是在ASP里面却不出错呢?多谢!
- 如何实现多语言的转换?(高分求解)
- 我有一个项目快做完了,可是数据文件在sqlserver2000软件里面,如何把.mdf 格式的数据库导出来放在 apoe_data目录文件里面
- zedgraph画图画折线图问题
- ?????偶尔出现的问题,大家帮我提示提示,大概是什么原因?????
- 关于绑定的一个问题
procedure PRO_SEARCH_VM (myzm in varchar2,myzl in varchar2,myOUT out varchar2,yxqz out date, mycur out cur_vm)
as
CURSOR c_v IS select xh,yxqz from v_vm where zm_a=myzm and zl=myzl;
myxh varchar2(20);
begin
myOUT := '-1' ;
OPEN c_v;
FETCH c_v INTO myxh,yxqz;
if c_v%NOTFOUND then
myOUT := 'E1';
CLOSE c_v;
return ;
end if ;
CLOSE c_v;
open mycur for select n1,na,sj,dz from sf_all where xh=myxh ;
myOUT := '1' ;
end PRO_SEARCH_VM;
end PKG_SEARCH ;
pkg里返回1个字符串、date和一个CURSOR
不知道C#里如何写。