Yes, now it works, thanks a lot Michael. :-)
j

Michael Bayer wrote:
func.cast() is not correct.  Use the cast() function which handles this special 
syntax:

from sqlalchemy import cast, Integer
from sqlalchemy.sql import column
from sqlalchemy.dialects import oracle

print cast(column('x'), Integer).compile(dialect=oracle.dialect())

CAST(x AS INTEGER)



On Apr 18, 2012, at 10:30 AM, jo wrote:

I'm using oracle. The error exists even without REGEXP_LIKE:

session.query(sa.func.max(sa.func.cast(sa.func.substr(Azienda.c.codice_aziendale,2),
 sa.Integer))).scalar()

NotSupportedError: (NotSupportedError) Variable_TypeByValue(): unhandled data 
type Integer 'SELECT max(cast(substr(azienda.codice_aziendale, :substr_1), 
:cast_1)) AS max_1 \nFROM azienda' {'substr_1': 2, 'cast_1': Integer()}

-----------------

the error is on func.cast, if I remove the cast function, it works:

session.query(sa.func.max(sa.func.substr(Azienda.c.codice_aziendale,2))).filter(sa.func.REGEXP_LIKE(Azienda.c.data_inizio,
 '[[:digit:]]')).scalar()

SELECT max(substr(azienda.codice_aziendale, :substr_1)) AS max_1
FROM azienda
WHERE REGEXP_LIKE(azienda.data_inizio, :REGEXP_LIKE_1)

{'REGEXP_LIKE_1': '[[:digit:]]', 'substr_1': 2}
Out[12]: u'_999'


Michael Bayer wrote:
we would need to know what database you're using.   It's likely your DB doesn't 
support REGEXP_LIKE.


On Apr 18, 2012, at 4:00 AM, jo wrote:

Hi all,

Someone could help me with this query?

SELECT MAX(CAST(SUBSTR(codice_aziendale, 2) AS INTEGER)) FROM azienda WHERE 
codice_aziendale LIKE '#%%' AND REGEXP_LIKE(SUBSTR(codice_aziendale, 2) , 
'[[:digit:]]')


I'm trying in this way:

session.query(sa.func.max(sa.func.cast(sa.func.substr(Azienda.c.codice_aziendale,2),
 sa.Integer))).filter(sa.func.REGEXP_LIKE(Azienda.c.data_inizio, 
'[[:digit:]]')).scalar()

but I got this error:

NotSupportedError: (NotSupportedError) Variable_TypeByValue(): unhandled data 
type Integer 'SELECT max(cast(substr(azienda.codice_aziendale, :substr_1), 
:cast_1)) AS max_1 \nFROM azienda \nWHERE REGEXP_LIKE(azienda.data_inizio, 
:REGEXP_LIKE_1)' {'REGEXP_LIKE_1': '[[:digit:]]', 'substr_1': 2, 'cast_1': 
Integer()}


j

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.



--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to