什么是Oracle等效的布尔值?我有这个函数,我需要将onlineFiling作为bool传递给存储过程,但显然Oracle在其OracleDbType中没有布尔值。我该怎么做呢?谢谢
public List<MModel> GetReportData(DateTime startDateTime, DateTime endDateTime, bool onlineFiling)
{
var managementModel = new List<ManagementModel>();
var oracCmd = new OracCommand(1);
oracCmd.AddInParameter(OracleDbType.Date, "I_STARTDATE", startDateTime));
oracCmd.AddInParameter(OracleDbType.Date, "I_ENDDATE", endDateTime));
oracCmd.AddInParameter(OracleDbType.???, "I_ONLINE", onlineFiling));
//rest of code here
答案 0 :(得分:1)
查看Data Provider for .NET Developer's Guide处的Oracle Data Provider文档。 ODP似乎不支持布尔值。
一种选择可能是使用Char
代替Number
代替1/0。
另外你应该看看以下SO帖子:
答案 1 :(得分:0)
这取决于您正在调用的存储过程,但它通常使用二进制类型的ORACLE参数。
public List<MModel> GetReportData(DateTime startDateTime, DateTime endDateTime, bool onlineFiling)
{
var managementModel = new List<ManagementModel>();
var oracCmd = new OracCommand(1);
oracCmd.AddInParameter(OracleDbType.Date, "I_STARTDATE", startDateTime));
oracCmd.AddInParameter(OracleDbType.Date, "I_ENDDATE", endDateTime));
oracCmd.AddInParameter(OracleDbType.BinaryDouble, "I_ONLINE", onlineFiling));
//rest of code here
但是你必须确保返回哪种类型并将结果转换为正确的类型。