#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.

Reply via email to