#11580: Unable to query TextField against oracle nclob 10Gr4 -------------------------------------+------------------------------------- Reporter: Mark Anderson | Owner: Shai | Berger Type: Bug | Status: assigned Component: Database layer | Version: dev (models, ORM) | Severity: Normal | Resolution: Keywords: oracle TextField | Triage Stage: Accepted Has patch: 0 | Needs documentation: 0 Needs tests: 0 | Patch needs improvement: 0 Easy pickings: 0 | UI/UX: 0 -------------------------------------+------------------------------------- Description changed by Mariusz Felisiak:
Old description: > I have tried __icontains and __regex against a TextField on an oracle > database and get the following error: > > DatabaseError: ORA-06502: PL/SQL: numeric or value error: character > string buffer too small > ORA-06512: at line 1 > > The code was ported directly over from mysql where the i_contains query > worked. The column was created as an NCLOB. I can query against other > fields fine. > > Environment: > > Request Method: GET > Request URL: http://django/eis/banobj/search/?q=class > Django Version: 1.1 rc 1 SVN-11348 > Python Version: 2.4.3 > Installed Applications: > ['django.contrib.auth', > 'django.contrib.contenttypes', > 'django.contrib.sessions', > 'django.contrib.sites', > 'eis.banobj', > 'django.contrib.admin', > 'django.contrib.admindocs', > 'eis.ldapauth', > 'eis.emailLogs'] > Installed Middleware: > ('django.middleware.common.CommonMiddleware', > 'django.contrib.sessions.middleware.SessionMiddleware', > 'django.contrib.auth.middleware.AuthenticationMiddleware') > > Template error: > In template /opt/django/eis/templates/banobj/arealist.html, error at line > 17 > Caught an exception while rendering: ORA-06502: PL/SQL: numeric or > value error: character string buffer too small > ORA-06512: at line 1 > > 7 : {% block content %} > > 8 : <h1> {{heading}} </h1> > > 9 : <table border=1> > > 10 : <tr> > > 11 : <th>Banner Object</th> > > 12 : <th>Ready For Testing</th> > > 13 : <th>Tested</th> > > 14 : <th>Primary User</th> > > 15 : <th>Object Type</th> > > 16 : </tr> > > 17 : {% for obj in obj_list %} > > 18 : <tr bgcolor="{% cycle rowcolors %}"> > > 19 : <td><a href="/eis/banobj/wiki/{{ obj.id }}/">{{ obj.name|upper > }}</a></td> > > 20 : <td>{% if obj.prod_svn %} > > 21 : <img src="/media/img/admin/icon-yes.gif"> > > 22 : {% else %} > > 23 : <img src="/media/img/admin/icon-no.gif"> > > 24 : {% endif %}</td> > > 25 : <td>{% if obj.user_tested %} > > 26 : <img src="/media/img/admin/icon-yes.gif"> > > 27 : {% else %} > > Traceback: > File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py" in > get_response > 92. response = callback(request, *callback_args, > **callback_kwargs) > File "/usr/lib/python2.4/site-packages/django/contrib/auth/decorators.py" > in __call__ > 78. return self.view_func(request, *args, **kwargs) > File "/opt/django/eis/banobj/views.py" in search > 172. > context_instance=RequestContext(request)) > File "/usr/lib/python2.4/site-packages/django/shortcuts/__init__.py" in > render_to_response > 20. return HttpResponse(loader.render_to_string(*args, **kwargs), > **httpresponse_kwargs) > File "/usr/lib/python2.4/site-packages/django/template/loader.py" in > render_to_string > 108. return t.render(context_instance) > File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in > render > 178. return self.nodelist.render(context) > File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in > render > 779. bits.append(self.render_node(node, context)) > File "/usr/lib/python2.4/site-packages/django/template/debug.py" in > render_node > 71. result = node.render(context) > File "/usr/lib/python2.4/site-packages/django/template/loader_tags.py" in > render > 97. return compiled_parent.render(context) > File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in > render > 178. return self.nodelist.render(context) > File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in > render > 779. bits.append(self.render_node(node, context)) > File "/usr/lib/python2.4/site-packages/django/template/debug.py" in > render_node > 71. result = node.render(context) > File "/usr/lib/python2.4/site-packages/django/template/loader_tags.py" in > render > 24. result = self.nodelist.render(context) > File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in > render > 779. bits.append(self.render_node(node, context)) > File "/usr/lib/python2.4/site-packages/django/template/debug.py" in > render_node > 81. raise wrapped > > Exception Type: TemplateSyntaxError at /banobj/search/ > Exception Value: Caught an exception while rendering: ORA-06502: PL/SQL: > numeric or value error: character string buffer too small > ORA-06512: at line 1 > > Original Traceback (most recent call last): > File "/usr/lib/python2.4/site-packages/django/template/debug.py", line > 71, in render_node > result = node.render(context) > File "/usr/lib/python2.4/site-packages/django/template/defaulttags.py", > line 126, in render > len_values = len(values) > File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line > 81, in __len__ > self._result_cache = list(self.iterator()) > File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line > 238, in iterator > for row in self.query.results_iter(): > File "/usr/lib/python2.4/site-packages/django/db/models/sql/query.py", > line 287, in results_iter > for rows in self.execute_sql(MULTI): > File "/usr/lib/python2.4/site-packages/django/db/models/sql/query.py", > line 2383, in <lambda> > result = iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)), > File "/usr/lib/python2.4/site- > packages/django/db/backends/oracle/base.py", line 469, in fetchmany > return tuple([self._rowfactory(r) > DatabaseError: ORA-06502: PL/SQL: numeric or value error: character > string buffer too small > ORA-06512: at line 1 New description: I have tried __icontains and __regex against a TextField on an oracle database and get the following error: DatabaseError: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1 The code was ported directly over from mysql where the i_contains query worked. The column was created as an NCLOB. I can query against other fields fine. Environment: {{{ Request Method: GET Request URL: http://django/eis/banobj/search/?q=class Django Version: 1.1 rc 1 SVN-11348 Python Version: 2.4.3 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'eis.banobj', 'django.contrib.admin', 'django.contrib.admindocs', 'eis.ldapauth', 'eis.emailLogs'] Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware') Template error: In template /opt/django/eis/templates/banobj/arealist.html, error at line 17 Caught an exception while rendering: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1 7 : {% block content %} 8 : <h1> {{heading}} </h1> 9 : <table border=1> 10 : <tr> 11 : <th>Banner Object</th> 12 : <th>Ready For Testing</th> 13 : <th>Tested</th> 14 : <th>Primary User</th> 15 : <th>Object Type</th> 16 : </tr> 17 : {% for obj in obj_list %} 18 : <tr bgcolor="{% cycle rowcolors %}"> 19 : <td><a href="/eis/banobj/wiki/{{ obj.id }}/">{{ obj.name|upper }}</a></td> 20 : <td>{% if obj.prod_svn %} 21 : <img src="/media/img/admin/icon-yes.gif"> 22 : {% else %} 23 : <img src="/media/img/admin/icon-no.gif"> 24 : {% endif %}</td> 25 : <td>{% if obj.user_tested %} 26 : <img src="/media/img/admin/icon-yes.gif"> 27 : {% else %} Traceback: File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py" in get_response 92. response = callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.4/site-packages/django/contrib/auth/decorators.py" in __call__ 78. return self.view_func(request, *args, **kwargs) File "/opt/django/eis/banobj/views.py" in search 172. context_instance=RequestContext(request)) File "/usr/lib/python2.4/site-packages/django/shortcuts/__init__.py" in render_to_response 20. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) File "/usr/lib/python2.4/site-packages/django/template/loader.py" in render_to_string 108. return t.render(context_instance) File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in render 178. return self.nodelist.render(context) File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in render 779. bits.append(self.render_node(node, context)) File "/usr/lib/python2.4/site-packages/django/template/debug.py" in render_node 71. result = node.render(context) File "/usr/lib/python2.4/site-packages/django/template/loader_tags.py" in render 97. return compiled_parent.render(context) File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in render 178. return self.nodelist.render(context) File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in render 779. bits.append(self.render_node(node, context)) File "/usr/lib/python2.4/site-packages/django/template/debug.py" in render_node 71. result = node.render(context) File "/usr/lib/python2.4/site-packages/django/template/loader_tags.py" in render 24. result = self.nodelist.render(context) File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in render 779. bits.append(self.render_node(node, context)) File "/usr/lib/python2.4/site-packages/django/template/debug.py" in render_node 81. raise wrapped Exception Type: TemplateSyntaxError at /banobj/search/ Exception Value: Caught an exception while rendering: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1 Original Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/django/template/debug.py", line 71, in render_node result = node.render(context) File "/usr/lib/python2.4/site-packages/django/template/defaulttags.py", line 126, in render len_values = len(values) File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line 81, in __len__ self._result_cache = list(self.iterator()) File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line 238, in iterator for row in self.query.results_iter(): File "/usr/lib/python2.4/site-packages/django/db/models/sql/query.py", line 287, in results_iter for rows in self.execute_sql(MULTI): File "/usr/lib/python2.4/site-packages/django/db/models/sql/query.py", line 2383, in <lambda> result = iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)), File "/usr/lib/python2.4/site- packages/django/db/backends/oracle/base.py", line 469, in fetchmany return tuple([self._rowfactory(r) DatabaseError: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line }}} -- -- Ticket URL: <https://code.djangoproject.com/ticket/11580#comment:14> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/070.42cc1976b7ea31b742228226e74dabec%40djangoproject.com.