К сожалению, это не ответ, но я не знаю, как комментировать ответ ejboy в.
Ejboy, это не работает для меня. Я пробовал подготовить заявление с (в моем случае)? Описание и? 2. Та же ошибка, я получаю, когда я пытаюсь показать содержимое на консоли:
<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>
я получаю ту же ошибку для обоих, для отображения и вставки (здесь пример для показа):
BRA0735401, CLOB: java.io.IOException: Content too long to fit in memory
Мои главная задача сделать копию из одной базы данных в другую. Как и в случае с Jan, содержимое blob/clob составляет около 40 kB (список ключей/значений, каждый в отдельной строке, из точки базы данных это MySQL MEDIUMTEXT). Я знаю, что можно вставить blob/clob из файла (пример скриптеллы с mp3-файлами), и можно записать содержимое блоба в файл (пример сценариста с odbc и изображениями с janino), поэтому я попытаюсь использовать решение с временным файлом, но это не прекрасное решение. Я прав?
Есть ли более простое решение?
С уважением, Яцек
ошибка выводится, если сообщение превышает 10Мб, пожалуйста, проверьте, какие данные вы вывода. Самое простое решение - не выводить содержимое BLOB на консоль. В качестве альтернативы вы можете обрезать описание с помощью substr или другой функции SQL, например. 'SELECT ID, DESCRIPTION, SUBSTR (ОПИСАНИЕ, 1, 100) как SHORT_DESC FROM ...' и распечатать его с помощью $ SHORT_DESC – ejboy
Я думаю, проблема связана с методом scriptella.jdbc.Lobs.ReadonlyClob.toString(). Этот метод описан как «Для целей отладки», но используется в scriptella. Я удалил в этом методе строку «CLOB:» в начале и второй параметр «1024» вызова IOUtils.toString, и теперь все работает отлично !. – user1337302
Я создал [билет] (http://javaforge.com/issue/54430), чтобы отслеживать эту проблему. Но в любом случае я советую не использовать BLOB или CLOB поля в $ выражениях. Это может ухудшить производительность или вызвать OutOfMemoryErrors для больших наборов данных. – ejboy