作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我想做的是使用网络服务调用来实现 oracle 过程。更具体地说:我这样做是为了当我将一个值放入我的 web 服务中的参数并运行它时,我希望它是发送到 oracle 中的过程的值,然后在成功运行后返回到 web 服务确实如此。
我目前尝试做的是:
public bool InsertMachineModels(string MachineModel)
{
logger.DebugFormat("FilteredReportInputsDAO.InsertMachineModel({0})", MachineModel);
bool retVal = true;
using (OracleConnection conn = new OracleConnection(connectionString))
{
using (OracleCommand cmd = new OracleCommand("Admin_Utilities.InsertMachineModel", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("pMachineModel", OracleType.Cursor).Value = Convert.ToString(MachineModel);
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
if (IsErrorLogging)
logger.Error("FilteredReportInputsDAO.InsertMachineModels() Exception: ", ex);
retVal = false;
}
finally
{
conn.Close();
}
}
}
return retVal;
}
下面你会发现我的程序在 sql developer 中实现时正确运行。
procedure InsertMachineModel( pMachineModel in nvarchar2)
is
begin
insert into machine_models (Machine_model) values (pMachineModel);
commit;
Exception when others then
pb_util.logdata(1, 'Admin_utilities.InsertMachineModel', 'Exception thrown', sqlerrm || ' stack ' || dbms_utility.format_error_backtrace);
rollback;
raise;
end;
我认为问题在于网络服务中的这一行:
cmd.Parameters.Add("pMachineModel", OracleType.Cursor).Value = Convert.ToString(MachineModel);
在我的记录器中,它说游标必须作为 parameterdirection.output 参数实现,但是我不相信在这种情况下你可以获取一个值并将它发送到 api,但如果我错了请随时纠正我.
所以我想我的问题是:如果我认为上面关于参数方向的陈述是错误的,那么正确答案是什么?
任何人都可以就如何正确实现我尝试做的事情给我任何建议吗?
非常感谢任何帮助或建议。谢谢。
最佳答案
我认为你的问题出在这一行:
cmd.Parameters.Add("pMachineModel", OracleType.Cursor).Value =
Convert.ToString(MachineModel);
您正在尝试添加 OracleType.Cursor
类型的参数,这是不正确或不必要的。尝试将行更改为:
cmd.Parameters.Add("pMachineModel", OracleType.Char).Value = MachineModel;
(这里也不需要 Convert.ToString
- MachineModel
已经是一个 String
)。
关于c# - 如何将参数值存储在 webservice 的 oracle 过程中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689718/
我是一名优秀的程序员,十分优秀!