On 07/11/2016 10:48 AM, Ofir Herzas wrote:
Alembic 0.8.6
cx-Oracle 5.1.3
SQLAlchemy 1.0.14


I have a column named "scope" (without the double quotes) with an
existing type of SmallInt and I'm trying to change it to an Integer with
the following line:
|
op.alter_column('t_rule','scope',existing_type=sa.SmallInteger(),type_=sa.Integer())
|

Unfortunately, this results with the following error:
|
sqlalchemy.exc.DatabaseError:(cx_Oracle.DatabaseError)ORA-00904::invalid
identifier
 [SQL:'ALTER TABLE t_rule MODIFY scope INTEGER']
|

I have found out that the following syntax does work:
|
ALTER TABLE t_rule MODIFY "SCOPE"INTEGER;
|

(Notice the caption of "scope" and the double quotes)

I'm not sure why this happens since /scope /doesn't seem to be a
reserved word.

Is it a bug or am I doing something wrong?

If "scope" is not a reserved word, then I'd suggest that the table was created using quoted "SCOPE" as the column name here, so that it is case-sensitive and will only match if quoted and uppercased. If you passed the name as all uppercase SCOPE to alter_column it should trip the "case sensitive" flag and quote it. There are more direct ways to turn on the quoting if that doesn't work.





--
You received this message because you are subscribed to the Google
Groups "sqlalchemy-alembic" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to sqlalchemy-alembic+unsubscr...@googlegroups.com
<mailto:sqlalchemy-alembic+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy-alembic" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy-alembic+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to