Access вызывает ошибку при экспорте полей с одним или двойным типом данных в Oracle
Исходный номер базы знаний: 301915
Примечание.
Требуются базовые навыки работы с кодом, макросами и взаимодействия. Эта статья относится к базе данных Microsoft Access (.mdb) и к проекту Microsoft Access (ADP).
Симптомы
При использовании драйвера Oracle ODBC для экспорта таблицы Access с полями типа данных Single или Double драйверу не удается экспортировать эти поля следующим образом.
Драйвер Microsoft Oracle отображает следующее сообщение об ошибке:
Microsoft Access не удалось добавить все данные в таблицу. Содержимое полей в <числовых> записях было удалено, а 0 записей было потеряно из-за ключевых нарушений.
- Если данные были удалены, вставленные или импортированные данные не соответствуют типам данных полей или свойству FieldSize в целевой таблице.
- Если записи были потеряны, вставленные записи содержат значения первичного ключа, которые уже существуют в целевой таблице, или нарушают правила целостности ссылок для связи, определенной между таблицами. Ты хочешь продолжить?
Драйверы Oracle ODBC до версии 8.1.6 включительно отображают следующее сообщение об ошибке:
ODBC — сбой вызова [Oracle][ODBC][ORA] ORA-01401: вставлено слишком большое значение для столбца (No 1401).
Причина
В Microsoft Access 97 процесс экспорта преобразует поля типа данных Single и Double в VarChar2(40). Однако в Microsoft Access 2000 и более поздних версиях поля преобразуются в VarChar2(4), который слишком мал для хранения данных.
Разрешение
Чтобы успешно экспортировать данные в Oracle, используйте запрос на основе соответствующих таблиц. Используйте функцию CStr()для преобразования типа данных в String.
Например, рассмотрим следующий синтаксис SQL:
SELECT tblExample.pkeyDataID, tblExample.dblTest
FROM tblExample;
где dblTest — это поле с типом данных Double. Преобразуйте dblTest в тип данных String, внося следующее изменение в синтаксис SQL:
SELECT tblExample.pkeyDataID, CStr([dblTest]) AS Expr1
FROM tblExample;
Теперь запрос можно успешно экспортировать в Oracle.
Эта проблема устранена в microsoft Jet 4.0 Database Engine с пакетом обновления 8 (SP8).
Состояние
Корпорация Майкрософт подтвердила, что это проблема в продуктах Майкрософт, перечисленных в начале этой статьи.
Дополнительные сведения
Сторонние продукты, которые обсуждаются в этой статье, производятся компаниями, независимыми от Microsoft. Корпорация Майкрософт не дает никаких явных, подразумеваемых и прочих гарантий относительно производительности или надежности этих продуктов.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по