INSERT / UPDATE外部数据库上的Blob

时间:2017-02-09 10:48:17

标签: blob firebird firebird2.5

我正在尝试将blob从一个数据库插入/更新到另一个数据库。我知道Firebird包含EXECUTE STATEMENT (on external database)。但是,如果您尝试将blob更新/更新到外部数据库,则它不起作用。

有人知道是否可以使用EXECUTE STATEMENT或任何其他建议吗?

更新1

文件大约是0,1MB大

{{1}}

我收到的错误:

“发生了算术溢出或除零。 算术异常,数字溢出或字符串截断。 转换为字符串时的blob截断:超出了长度限制。“

2 个答案:

答案 0 :(得分:2)

改用参数。

请参阅EXECUTE STATEMENT with Dynamic Parameters

喜欢:

EXECUTE STATEMENT('INSERT INTO wsattachment(id, filecontent) VALUES(:p1, :p2)')
(p1 := new.id, p2 := new.filecontent)
  on external 'myDB.FDB'
  as user 'SYSDBA' password 'pw';

答案 1 :(得分:2)

Firebird 2.5的某些早期版本存在blob问题,例如在某些情况下,处理的blob有VARCHAR(30)。我无法轻易确定您遇到的确切问题,但升级到较新版本可以解决此问题(正如您已在评论中确认的那样)。

在撰写本文时,Firebird 2.5.6是最新版本,预计很快就会推出2.5.7。