0

我正在使用 ODP.NET(版本 2.111.7.0)和 C#、OracleCommand 和 OracleParameter 对象以及 OracleCommand.ExecuteNonQuery 方法

我想知道是否有一种方法可以通过 DB 链接将大字节数组插入到驻留在另一个数据库中的 oracle 表中。我知道通过 DB 链接处理 lob 通常是有问题的,但我有点犹豫要修改代码并添加另一个连接。

创建一个以 blob 作为参数并通过 dblink 在内部进行对话的存储过程会有什么不同吗?不这么认为。。

我目前的情况是,只要我通过 OracleCommand 传递的参数是长度为 0 或长度 > 32KB 的字节数组(我怀疑,因为 20KB工作,35KB 没有)

我为此参数使用 OracleDbType.Blob。

谢谢你。

有任何想法吗?

4

1 回答 1

0

我最终使用了第二个连接,同步了两个事务,以便始终共同执行提交和回滚。我最终实际上还认为通过 dblink 处理 BLOB 存在一个普遍问题,因此第二个连接是一个更好的选择,尽管在我的情况下,我的应用程序的设计略有中断 - 需要同时引入第二个连接和第二个连接交易。另一个选择是尝试使用 PL/SQL 块和某种形式的 DBMS_LOB.WRITEAPPEND 将 blob 插入 32k 的块中,但这需要对我的代码进行更深入的更改(在我的情况下),因此我选择了更简单和更直接的第一个解决方案。

于 2011-04-27T08:16:23.470 回答