Closed
Description
代码片段:
User u = fsql.Ado.CommandFluent("pkg_test.getUserByOID")
.CommandType(System.Data.CommandType.StoredProcedure)
.WithParameter("v_userOID", 10000)
.WithParameter("v_refCur", null, p => {
((OracleParameter)p).OracleDbType = OracleDbType.RefCursor;
p.Direction = System.Data.ParameterDirection.Output;
})
.QuerySingle<User>();
异常信息:
ORA-01008: 并非所有变量都已绑定
实际该存储过程就是那两个参数,调试后发现是 ParameterName 多了前缀冒号引起的(分别为 :v_userOID 和 :v_refCur)。
目前解决办法:
User u = fsql.Ado.CommandFluent("pkg_test.getUserByOID")
.CommandType(System.Data.CommandType.StoredProcedure)
.WithParameter("v_userOID", 10000, p => {
p.ParameterName = "v_userOID"; // 重写 ParameterName
})
.WithParameter("v_refCur", null, p => {
p.ParameterName = "v_refCur"; // 重写 ParameterName
((OracleParameter)p).OracleDbType = OracleDbType.RefCursor;
p.Direction = System.Data.ParameterDirection.Output;
})
.QuerySingle<User>();
期待未来版本内解决。