我面临一个奇怪的问题,试图通过bulk_insert
将一个项目列表(长度约为30)存储到数据库中,我得到了
django.db.utils.DatabaseError: ORA-12704: character set mismatch
但是通过save
逐个插入项目是可以的,即使将一些项目放入bulk_insert
也可以。
答案 0 :(得分:0)
我最近遇到了同样的问题。为bulk_create()生成的sql django orm是这样的: 插入table_name(column_name1,column_name2)选择a1,a2从双联合全部选择a3,a4从dual。
Djano orm会在执行语句之前将所有值转换为unicode。在cx_Oralce中,None将被视为VARCHAR2,unicode将被视为NVARCHAR2,因此如果a1为None且a2不为None,则为ORA-12704。 如果我们逐个插入项目,Django orm将使用另一个sql,所以我们不会遇到这个问题。