On May 8, 2008, at 5:13 PM, Dan wrote:

>
> I have an Oracle schema that has a column name labeled as
> 'when'  (without the quotes).  Everything works fine in PL/SQL when
> referencing this column -- not special handling needs to be done.
> However, we created a sqlalchemy definition as follows:
>
> monitor_mts_table = Table('monitor_mts', metadata,
>    Column('monitor_mts_id', Integer, Sequence('seq_monitor_mts'),
> primary_key = True),
>    Column('when', OracleDateTime),
>    Column('status', Integer),
>    Column('created_date', OracleDateTime),
>    )
>
> When we reference this we get a database error from oracle that the
> column monitor_mts."when" does not exist.  Notice the double quotes.
> This is what is throwing off oracle since the column definition in the
> table is not double quoted.
>
> I have tried appending the clause quote=False to the Column definition
> above but it does not affect what is being sent to the database --
> still a doubled quoted column name.
>
> Any ideas how to work around this without changing the underlying
> table definition in Oracle?

"when"  is a reserved word in oracle - it has to be quoted.   however,  
once its quoted its now bound to be lower case.  so try calling the  
column "WHEN" instead since oracle probably wants to match the column  
to upper case.  quote=True is only used to force quoting on for  
reserved words that arent yet in the SQLA dictionary.




--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to