Hello,
I work with sqlalchemy 0.5.2, python 2.5 and Oracle 8.17.
Consider the following code:
ora = create_engine('oracle://user:passw...@server/INSTANCE',
use_ansi=False,
label_length=None)
metadata = MetaData(bind=ora)
part_list_table = Table('part_list', metadata,
Column('$COID', COIDtype(8), key='coid', primary_key=True),
include_columns=['$COID',
's_part_number'],
autoload=True,
schema = 'DMAGS1'
)
sel = part_list_table.select( part_list_table.c.coid ==
'543392B3A4626F76' ).execute()
cursor = iter(sel)
part = cursor.next()
The last instruction raises an exception:
...DatabaseError: (DatabaseError) ORA-01036: illegal variable name/
number
'SELECT "DMAGS1".part_list.s_part_number, "DMAGS1".part_list."$COID"
\nFROM "DMAGS1".part_list \nWHERE "DMAGS1".part_list."$COID" = :
$COID_1' {'$COID_1': 'T3\x92\xb3\xa4bov'}
This is due to the bind parameter name “$COID_1”. The ‘$’ character is
not allowed in this context. I get the same error from sqlplus, and
the python script works fine when I select on the column
‘s_part_number’.
I tried to use ‘label_length=5’ in create_engine, but it generates the
bind parameter name ‘_1’, which is rejected by oracle for the same
reason.
Does anyone know a workaround? Changing the column name is not a
option.
Thanks,
Philippe
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" 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/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---