1 year ago

#381024

test-img

Mateusz Konopelski

sqlAlchemy ORM DDL (cx_Oracle.DatabaseError) ORA-00904: : invalid identifier

I've prepared test case based on sqlAlchemy documentation: https://docs.sqlalchemy.org/en/14/orm/tutorial.html#declare-a-mapping

installation versions:

cx-Oracle==8.2.1
psycopg2-binary==2.9.1
SQLAlchemy==1.4.21

DB Version:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

DDL:

import urllib

from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy import create_engine


Base = declarative_base()


class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(VARCHAR2(10))
    fullname = Column(VARCHAR2(10))
    nickname = Column(VARCHAR2(10))

    def __repr__(self):
       return "<User(name='%s', fullname='%s', nickname='%s')>" % (
                            self.name, self.fullname, self.nickname)
PASSWORD = 'pass'

conn_str = (f"oracle+cx_oracle://AIM:{urllib.parse.quote_plus(PASSWORD)}@host:1521/?service_name=service")

engine = create_engine(conn_str)
Base.metadata.create_all(engine)

And I get really weird error:

sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) ORA-00904: : invalid identifier
[SQL: 
CREATE TABLE users (
    PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/14/4xp6)

python-3.x

sqlalchemy

cx-oracle

0 Answers

Your Answer

Accepted video resources