#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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/070.42cc1976b7ea31b742228226e74dabec%40djangoproject.com.