gpt4 book ai didi

c# - odp.net 可以将参数传递给 bool pl/sql 参数吗?

转载 作者:太空狗 更新时间:2023-10-30 00:12:41 24 4
gpt4 key购买 nike

是否可以将 OracleParameter 正确传递给 pl/sql 存储过程中的 bool 参数?

最佳答案

我使用了以下解决方法来绕过此限制:

  1. 使用匿名 block 包装函数调用。
  2. 返回包含 1 或 0 的输出变量。
  3. 读取输出变量并将其转换为 bool 值。

下面是一些示例代码:

using (var connection = new OracleConnection("<connection string>"))
{
var command = new OracleCommand();
command.Connection = connection;
command.CommandText =
"declare v_bool boolean;" +
"begin " +
"v_bool := auth_com.is_valid_username (:username); "+
"if (v_bool = TRUE) then select 1 into :v_result from dual; end if; " +
"if (v_bool = FALSE) then select 0 into :v_result from dual; end if; " +
"end;";

command.Parameters.Add(new OracleParameter { ParameterName = "username", OracleDbType = OracleDbType.NVarchar2, Size=512, Direction = ParameterDirection.Input });
command.Parameters.Add(new OracleParameter { ParameterName = "v_result", OracleDbType = OracleDbType.Decimal, Direction = ParameterDirection.Output });

try
{
connection.Open();
command.ExecuteNonQuery();
}
finally
{
connection.Close();
}

bool success = Convert.ToBoolean(((OracleDecimal)command.Parameters["v_result"].Value).ToInt32());
}

编辑:

Alex Keh,来自 Oracle,2013 年 10 月:

We're planning on supporting ODP.NET Boolean in the managed provider in the near term, possibly in the middle of next year.

关于c# - odp.net 可以将参数传递给 bool pl/sql 参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3099833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com