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 [email protected].
For more options, visit https://groups.google.com/d/optout.