django.db.utils.DatabaseError:ORA-12704:字符集不匹配

时间:2015-09-08 14:25:51

标签: oracle12c django-1.8

我面临一个奇怪的问题,试图通过bulk_insert将一个项目列表(长度约为30)存储到数据库中,我得到了 django.db.utils.DatabaseError: ORA-12704: character set mismatch 但是通过save逐个插入项目是可以的,即使将一些项目放入bulk_insert也可以。

1 个答案:

答案 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,所以我们不会遇到这个问题。