2015-09-08 3 views
0

я столкнулся странный вопрос, пытаясь сохранить список элементов (длиной ~ 30) в базу данных с помощью bulk_insert, я получаю django.db.utils.DatabaseError: ORA-12704: character set mismatch но вставляя элементы один за другим через save в порядке, даже если положить несколько элементов в bulk_insert работ.django.db.utils.DatabaseError: ORA-12704: набор символов несовпадение

ответ

0

Недавно я столкнулся с той же проблемой. Структура sql django, созданная для bulk_create(), выглядит так: Вставить в table_name (column_name1, column_name2) выбрать a1, a2 из dual union all выбрать a3, a4 из dual.

Djano orm преобразует все значения в unicode перед выполнением инструкции. В cx_Oralce None будет рассматриваться как VARCHAR2, unicode будет рассматриваться как NVARCHAR2, поэтому, если у нас будет ORA-12704, если a1 - None и a2 не None. Если мы вставляем элементы по одному, то Django orm будет использовать другой sql, поэтому у нас не будет этой проблемы.

 Смежные вопросы

  • Нет связанных вопросов^_^