#5558: istartswith lookup fails with ORACLE in r6393
---------------------------------------+------------------------------------
Reporter:  [EMAIL PROTECTED]  |       Owner:  nobody          
  Status:  new                         |   Component:  Database wrapper
 Version:  SVN                         |    Keywords:  Oracle          
   Stage:  Unreviewed                  |   Has_patch:  0               
---------------------------------------+------------------------------------
 I have an Oracle9i database and access that from a PowerPC Mac using the
 latest cx_Oracle 4.3.1 and python 2.5.1
 filtering a queryset with startswith or istartswith returns the following
 oracle error
 (this seems to be model independent, and not related to my code)

 In [27]: JobStatus.objects.filter(channel__name__istartswith="a")
 Out[27]:
 ---------------------------------------------------------------------------
 <class 'cx_Oracle.DatabaseError'>         Traceback (most recent call
 last)

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/mcc/<ipython console> in <module>()

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/IPython/Prompts.py in __call__(self, arg)
     521
     522             # and now call a possibly user-defined print mechanism
 --> 523             manipulated_val = self.display(arg)
     524
     525             # user display hooks can change the variable to be
 stored in

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/IPython/Prompts.py in _display(self, arg)
     545         """
     546
 --> 547         return self.shell.hooks.result_display(arg)
     548
     549     # Assign the default display method:

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/IPython/hooks.py in __call__(self, *args, **kw)
     132             #print "prio",prio,"cmd",cmd #dbg
     133             try:
 --> 134                 ret = cmd(*args, **kw)
     135                 return ret
     136             except ipapi.TryNext, exc:

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/IPython/hooks.py in result_display(self, arg)
     160
     161     if self.rc.pprint:
 --> 162         out = pformat(arg)
     163         if '\n' in out:
     164             # So that multi-line strings line up with the left
 column of

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pprint.py
 in pformat(self, object)
     109     def pformat(self, object):
     110         sio = _StringIO()
 --> 111         self._format(object, sio, 0, 0, {}, 0)
     112         return sio.getvalue()
     113

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pprint.py
 in _format(self, object, stream, indent, allowance, context, level)
     127             self._readable = False
     128             return
 --> 129         rep = self._repr(object, context, level - 1)
     130         typ = _type(object)
     131         sepLines = _len(rep) > (self._width - 1 - indent -
 allowance)

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pprint.py
 in _repr(self, object, context, level)
     193     def _repr(self, object, context, level):
     194         repr, readable, recursive = self.format(object,
 context.copy(),
 --> 195                                                 self._depth,
 level)
     196         if not readable:
     197             self._readable = False

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pprint.py
 in format(self, object, context, maxlevels, level)
     205         and whether the object represents a recursive construct.
     206         """
 --> 207         return _safe_repr(object, context, maxlevels, level)
     208
     209

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/pprint.py
 in _safe_repr(object, context, maxlevels, level)
     290         return format % _commajoin(components), readable,
 recursive
     291
 --> 292     rep = repr(object)
     293     return rep, (rep and not rep.startswith('<')), False
     294

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/django/db/models/query.py in __repr__(self)
     106
     107     def __repr__(self):
 --> 108         return repr(self._get_data())
     109
     110     def __len__(self):

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/django/db/models/query.py in _get_data(self)
     480     def _get_data(self):
     481         if self._result_cache is None:
 --> 482             self._result_cache = list(self.iterator())
     483         return self._result_cache
     484

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/django/db/backends/oracle/base.py in iterator(self)
     120
     121                 cursor = connection.cursor()
 --> 122                 cursor.execute(full_query, params)
     123
     124                 fill_cache = self._select_related

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/django/db/backends/util.py in execute(self, sql, params)
      17         start = time()
      18         try:
 ---> 19             return self.cursor.execute(sql, params)
      20         finally:
      21             stop = time()

 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-
 packages/django/db/backends/oracle/base.py in execute(self, query, params)
     468             query = query[:-1]
     469         query = smart_str(query, self.charset) % tuple(args)
 --> 470         return Database.Cursor.execute(self, query, params)
     471
     472     def executemany(self, query, params=None):

 <class 'cx_Oracle.DatabaseError'>: ORA-01425: escape character must be
 character string of length 1

-- 
Ticket URL: <http://code.djangoproject.com/ticket/5558>
Django Code <http://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 post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to