通过dblink大小限制通过odp.net插入blob

时间:2011-04-14 14:50:22

标签: blob odp.net dblink

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

我想知道是否有办法通过数据库链接将大字节数组插入驻留在另一个数据库中的oracle表中。我知道通过数据库链接进行高架处理通常会有问题,但我对修改代码和添加其他连接有点犹豫。

会创建一个存储过程,将blob作为参数并通过dblink内部进行会话有何不同?不这么认为..

我目前的情况是,只要我通过OracleCommand传递的参数是长度为0或长度为>的字节数组,Oracle就会给我“ORA-22992:不能使用从远程表中选择的LOB定位器”。 32KB(我怀疑,因为20KB工作,35KB没有)

我正在使用OracleDbType.Blob作为此参数。

谢谢。

任何想法?

1 个答案:

答案 0 :(得分:0)

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