首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制Scriptella中的blob字段

复制Scriptella中的blob字段
EN

Stack Overflow用户
提问于 2013-01-28 08:48:46
回答 2查看 664关注 0票数 0

我使用Scriptella进行数据库迁移。将长B字段从表A复制到表B的最佳方法是什么?

当我这样做的时候:

代码语言:javascript
复制
<query ...
  SELECT FL_DATA as data FROM A where FL_DATA IS NOT NULL
  <script ...>
    INSERT B (FL_DATA) VALUES ('$data');
  </script>
</query>

然后,它只会将'BLOB: java.io.IOException:内容太长而无法在内存中容纳‘写入目标字段(顺便说一句:长BLOB的大小仅为几个kBytes)。

EN

回答 2

Stack Overflow用户

发布于 2013-01-30 09:06:28

使用$variable语法时,只需将变量的文本值插入语句的文本中。建议的一种方法是使用准备好的语句语法。在这种情况下,值将与SQL语句分开传输。请试用以下方法:

代码语言:javascript
复制
<query ...
  SELECT FL_DATA as data FROM A where FL_DATA IS NOT NULL
  <script ...>
    INSERT B (FL_DATA) VALUES (?data);
  </script>
</query>
票数 0
EN

Stack Overflow用户

发布于 2013-02-13 10:21:03

对不起,这不是回答,但我不知道如何评论ejboy的回答。

这对我不管用。我尝试过准备语句(在我的例子中)?描述和?2。当我试图在控制台上显示内容时,会遇到相同的错误:

代码语言:javascript
复制
<query connection-id="database">
    SELECT id, description FROM table;
    <script connection-id="copy_database">
        INSERT INTO table VALUES (?1, ?2);
    </script>
    <script connection-id="text">
      $id, $description
    </script>
</query>

对于显示和插入两者,我得到了相同的错误(这里是显示的示例):

代码语言:javascript
复制
BRA0735401, CLOB: java.io.IOException: Content too long to fit in memory

我的主要任务是从一个数据库复制到另一个数据库。与Jan的情况一样,blob/clob内容大约是40 kB (从数据库的角度来看,这是MySQL MEDIUMTEXT)(从数据库的角度来看,每个键/值的列表都是单独的),可以从一个文件(带有mp3文件的脚本示例)中插入blob/clob,并且可以将blob的内容写入一个文件(带有odbc的脚本示例和带有janino的图片),所以我将尝试使用一个临时文件的解决方案,但这不是一个漂亮的解决方案。我说的对吗?

有没有更简单的解决办法?

你好,杰西克

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14558421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档