Ошибка Oracle ORA-01406 - fetched column value was truncated [08.05.2008]
Выбранное значение столбца усекается? Читаем, как бороться!
Ошибка Oracle ORA-01406 - fetched column value was truncated (выбранное значение столбца усекается) - такая ошибка возникла у меня при использовании SQL-запроса, обращающегося из Microsoft Excel к базе данных Oracle через ODBC-подключение. На официальном сайте Oracle про нее сказано следующее:
Cause: In a host language program, a FETCH operation was forced to truncate a character string. The program buffer area for this column was not large enough to contain the entire string. The cursor return code from the fetch was +3.
Action: Increase the column buffer area to hold the largest column value or perform other appropriate processing.
То есть, эта ошибка возникает тогда, когда выбираемая из базы данных строка слишком длинна, и ее приходится обрезать. Предлагаемое действие - увеличить размер буфера, сделав его больше максимально возможной длины строки, выбираемой из базы данных. Для при веденного примера я решил это очень просто - зайдя в Панель управления -> Администрирование -> Источники данных ODBC, запустил настройку нужного источника данных и в новом окне, на вкладке Oracle установил значение параметра "Fetch buffer size" на 128000 вместо 64000 по умолчанию.
Для других приложений, использующих ODBC для подключения к Oracle, проблема должна решаться сходным способом, нужно только найти, где установить новый размер буфера.
Постоянный адрес страницы: http://www.hypercomp.ru/articles/ora-01406-error-fetched-column-value-was-truncated/
Комментарии [145]
|