c# – 如何使用带有ODP(Oracle.DataAccess)的>> prepared
我正在尝试执行准备好的SQL查询,该查询更新Oracle 10g数据库(10.2.0.1)中的CLOB字段.
如果我从SQL Developer内部执行以下查询并提供占位符的值,则没有问题.但是,如果我通过OracleCommand(Oracle.DataAccess.dll,版本1.102.0.1(我认为),.NET Framework 3.5)执行它, 查询: UPDATE master_table SET description = :description,modification_notes = :modification_notes WHERE master_id = :master_id; 错误:
进一步的信息: 参数分配如下: var param_description = new OracleParameter(":description",OracleDbType.Clob); param_description.Value = "Test"; 我试过以下的事情: >将to_clob()插入SQL查询 我也发现了以下描述,但我真的希望能够保留准备好的查询. How to insert CLOB field in Oracle using C# 是否可以通过准备好的查询来完成此操作? 我附上了一个产生错误的完整示例. DESCRIPTION和MODIFICATION_NOTES是数据库中CLOB类型的两列. 输入数据: >连接:OracleConnection到数据库 码: var query = "UPDATE master_table " + "SET description = :description " + " modification_notes = :modification_notes " + "WHERE master_id = :master_id"; var param_master_id = new OracleParameter(":master_id",OracleDbType.Int64); param_master_id.Value = master_id; var param_description = new OracleParameter(":description",OracleDbType.Clob); param_description.Value = "Test1"; var param_master_id = new OracleParameter(":modification_notes",OracleDbType.Clob); param_description.Value = "Test2"; IDbCommand command = new OracleCommand(query,connection); command.parameters.Add(param_master_id); command.parameters.Add(param_description); command.parameters.Add(param_modification_notes); command.ExecuteNonQuery(); // this line throws an exception 解决方法
如果要按名称绑定,则需要将其设置为true.默认值是按添加的参数的顺序绑定.
cmd.BindByName = true; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |