performing this query I get the subsequent traceback error:

In [24]: res = ora(multe_join).select(limitby=(0,5))
---------------------------------------------------------------------------
DatabaseError                             Traceback (most recent call last)
/home/manuele/web2py.trunk/applications/theseus2/models/dashboard/dashboard.py
in <module>()
----> 1 res = ora(multe_join).select(limitby=(0,5))

/home/manuele/web2py.trunk/gluon/dal/objects.pyc in select(self,
*fields, **attributes)
   2062                                     attributes.get('groupby',None))
   2063         fields = adapter.expand_all(fields, tablenames)
-> 2064         return adapter.select(self.query,fields,attributes)
   2065
   2066     def nested_select(self,*fields,**attributes):

/home/manuele/web2py.trunk/gluon/dal/adapters/base.pyc in select(self,
query, fields, attributes)
   1229                 time_expire)
   1230         else:
-> 1231             return self._select_aux(sql,fields,attributes)
   1232
   1233     def _count(self, query, distinct=None):

/home/manuele/web2py.trunk/gluon/dal/adapters/base.pyc in
_select_aux(self, sql, fields, attributes)
   1194         cache = args_get('cache',None)
   1195         if not cache:
-> 1196             self.execute(sql)
   1197             rows = self._fetchall()
   1198         else:

/home/manuele/web2py.trunk/gluon/dal/adapters/oracle.pyc in
execute(self, command, args)
    134         if command[-1:]==';':
    135             command = command[:-1]
--> 136         return self.log_execute(command, args)
    137
    138     def create_sequence_and_triggers(self, query, table, **args):

/home/manuele/web2py.trunk/gluon/dal/adapters/base.pyc in
log_execute(self, *a, **b)
   1310         self.db._lastsql = command
   1311         t0 = time.time()
-> 1312         ret = self.cursor.execute(command, *a[1:], **b)
   1313         self.db._timings.append((command,time.time()-t0))
   1314         del self.db._timings[:-TIMINGSSIZE]

DatabaseError: ORA-00918: column ambiguously defined

the raw query written from the driver looks like this:

In [26]: ora(multe_join)._select(limitby=(0,5))
Out[26]: 'SELECT  quartiere.id, quartiere.cod, quartiere.odonimo,
municipio.id, municipio.cod, municipio.roman_cod, municipio.odonimo,
strada.id, strada.cod, strada.odonimo, strada.quartiere,
strada.municipio, multe.id, multe.NUMERO_REGISTRAZIONE,
multe.NUMERO_AVVISO, multe.TIPO, multe.DATA_ACCERTAMENTO,
multe.MATRICOLA, multe.MATRICOLA_2, multe.CODICE_VIA, multe.TIPOST1,
multe.CODICE_VIA2, multe.NUMERO_CIVICO, multe.TARGA,
multe.IMPORTO_TOTALE, multe.SEZIONE, multe.NUMERO_PATENTE,
multe.TIPO_DOCUMENTO, multe.DATA_PATENTE, multe.CATEGORIA_PATENTE,
multe.RILASCIATA_DA, multe.NOME, multe.COGNOME, multe.DATA_NASCITA,
multe.LUOGO_NASCITA, multe.PROV_NASCITA, multe.LUOGO_RESIDENZA,
multe.PROV_RESIDENZA, multe.CAP_RESIDENZA, multe.INDIRIZZO_RESIDENZA,
multe.NUMERO_CIVICO_RESIDENZA, multe.SOCIETA_O_PERSONA,
multe.CODICE_FISCALE_PI, multe.NOTE, multe.SESSO, multe.ARTICOLO,
multe.COMMA, multe.DESCRIZIONE_VIOLAZIONE FROM (SELECT w_tmp.*, ROWNUM
w_row FROM (SELECT quartiere.id, quartiere.cod, quartiere.odonimo,
municipio.id, municipio.cod, municipio.roman_cod, municipio.odonimo,
strada.id, strada.cod, strada.odonimo, strada.quartiere,
strada.municipio, multe.id, multe.NUMERO_REGISTRAZIONE,
multe.NUMERO_AVVISO, multe.TIPO, multe.DATA_ACCERTAMENTO,
multe.MATRICOLA, multe.MATRICOLA_2, multe.CODICE_VIA, multe.TIPOST1,
multe.CODICE_VIA2, multe.NUMERO_CIVICO, multe.TARGA,
multe.IMPORTO_TOTALE, multe.SEZIONE, multe.NUMERO_PATENTE,
multe.TIPO_DOCUMENTO, multe.DATA_PATENTE, multe.CATEGORIA_PATENTE,
multe.RILASCIATA_DA, multe.NOME, multe.COGNOME, multe.DATA_NASCITA,
multe.LUOGO_NASCITA, multe.PROV_NASCITA, multe.LUOGO_RESIDENZA,
multe.PROV_RESIDENZA, multe.CAP_RESIDENZA, multe.INDIRIZZO_RESIDENZA,
multe.NUMERO_CIVICO_RESIDENZA, multe.SOCIETA_O_PERSONA,
multe.CODICE_FISCALE_PI, multe.NOTE, multe.SESSO, multe.ARTICOLO,
multe.COMMA, multe.DESCRIZIONE_VIOLAZIONE FROM quartiere, municipio,
strada, multe WHERE (((strada.cod = multe.CODICE_VIA) AND
(strada.quartiere = quartiere.id)) AND (strada.municipio =
municipio.id)) ORDER BY quartiere.id, municipio.id, strada.id, multe.id)
w_tmp WHERE ROWNUM<=5) quartiere, municipio, strada, multe  WHERE
(((strada.cod = multe.CODICE_VIA) AND (strada.quartiere = quartiere.id))
AND (strada.municipio = municipio.id)) AND w_row > 0  ORDER BY
quartiere.id, municipio.id, strada.id, multe.id;'

the problem seams in the limitby attributes because without it no error
is raised...

In [28]: ora(multe_join).select()
Out[28]: <Rows (42547)>

here you can see the raw query again without the limitby:

In [27]: ora(multe_join)._select()
Out[27]: 'SELECT  quartiere.id, quartiere.cod, quartiere.odonimo,
municipio.id, municipio.cod, municipio.roman_cod, municipio.odonimo,
strada.id, strada.cod, strada.odonimo, strada.quartiere,
strada.municipio, multe.id, multe.NUMERO_REGISTRAZIONE,
multe.NUMERO_AVVISO, multe.TIPO, multe.DATA_ACCERTAMENTO,
multe.MATRICOLA, multe.MATRICOLA_2, multe.CODICE_VIA, multe.TIPOST1,
multe.CODICE_VIA2, multe.NUMERO_CIVICO, multe.TARGA,
multe.IMPORTO_TOTALE, multe.SEZIONE, multe.NUMERO_PATENTE,
multe.TIPO_DOCUMENTO, multe.DATA_PATENTE, multe.CATEGORIA_PATENTE,
multe.RILASCIATA_DA, multe.NOME, multe.COGNOME, multe.DATA_NASCITA,
multe.LUOGO_NASCITA, multe.PROV_NASCITA, multe.LUOGO_RESIDENZA,
multe.PROV_RESIDENZA, multe.CAP_RESIDENZA, multe.INDIRIZZO_RESIDENZA,
multe.NUMERO_CIVICO_RESIDENZA, multe.SOCIETA_O_PERSONA,
multe.CODICE_FISCALE_PI, multe.NOTE, multe.SESSO, multe.ARTICOLO,
multe.COMMA, multe.DESCRIZIONE_VIOLAZIONE FROM quartiere, municipio,
strada, multe WHERE (((strada.cod = multe.CODICE_VIA) AND
(strada.quartiere = quartiere.id)) AND (strada.municipio = municipio.id));'

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to