2014-02-25 36 views
0

我使用Django 1.6.2 + ORACLE 12 + cx_oracle 5.1.2甲骨文+ Django的+ bulk_create +長文本

這裏是我的模型

class Value(models.Model): 
    text= models.TextField() 

我有一些文字,它的長度是在俄語3000個字符,當IM特林做到這一點:

text = 'some text' #3000 characters 

v = Value(text=text) 
v.save() 

它的確定...

但是當我這樣做:

text = 'some text' #3000 characters 

v = Value(text=text) 
Value.objects.bulk_create([v]) 

我得到這個異常:

環境:

Request Method: GET 
Request URL: http://127.0.0.1/test/ 

Django Version: 1.6.2 
Python Version: 3.3.4 
Installed Applications: 
('django.contrib.admin', 
'haystack', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.sites', 
'registration', 
'modeltranslation', 
'south', 
'core', 
'appl', 
'legacy_data', 
'djcelery') 
Installed Middleware: 
('django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware', 
'tpp.SiteUrlMiddleWare.SiteUrlMiddleWare', 
'tpp.SiteUrlMiddleWare.GlobalRequest') 


Traceback: 
File "C:\Python33\lib\site-packages\django\core\handlers\base.py" in get_response 
    114.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "C:\Users\user\PycharmProjects\tpp\tppcenter\views.py" in test 
    374.  Value.objects.bulk_create([v]) 
File "C:\Python33\lib\site-packages\django\db\models\manager.py" in bulk_create 
    160.   return self.get_queryset().bulk_create(*args, **kwargs) 
File "C:\Python33\lib\site-packages\django\db\models\query.py" in bulk_create 
    356.      self._batched_insert(objs_without_pk, fields, batch_size) 
File "C:\Python33\lib\site-packages\django\db\models\query.py" in _batched_insert 
    835.            using=self.db) 
File "C:\Python33\lib\site-packages\django\db\models\manager.py" in _insert 
    232.   return insert_query(self.model, objs, fields, **kwargs) 
File "C:\Python33\lib\site-packages\django\db\models\query.py" in insert_query 
    1511.  return query.get_compiler(using=using).execute_sql(return_id) 
File "C:\Python33\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql 
    899.    cursor.execute(sql, params) 
File "C:\Python33\lib\site-packages\django\db\backends\util.py" in execute 
    69.    return super(CursorDebugWrapper, self).execute(sql, params) 
File "C:\Python33\lib\site-packages\django\db\backends\util.py" in execute 
    53.     return self.cursor.execute(sql, params) 
File "C:\Python33\lib\site-packages\django\db\utils.py" in __exit__ 
    99.     six.reraise(dj_exc_type, dj_exc_value, traceback) 
File "C:\Python33\lib\site-packages\django\utils\six.py" in reraise 
    535.    raise value.with_traceback(tb) 
File "C:\Python33\lib\site-packages\django\db\backends\util.py" in execute 
    53.     return self.cursor.execute(sql, params) 
File "C:\Python33\lib\site-packages\django\db\backends\oracle\base.py" in execute 
    815.    return self.cursor.execute(query, self._param_generator(params)) 

Exception Type: DatabaseError at /test/ 
Exception Value: ORA-01461: can bind a LONG value only for insert into a LONG column 

但對英文字符是確定...

回答