Python 带oracle的sql返回ORA-01008:并非所有变量都已绑定

Python 带oracle的sql返回ORA-01008:并非所有变量都已绑定,python,pandas,oracle,sqlalchemy,Python,Pandas,Oracle,Sqlalchemy,我正在从和api读取csv,并且能够将其流式传输到熊猫数据帧中 df = pd.read_csv(iterable_to_stream(reply.iter_content()), skiprows=7, dtype=str, na_filter=Fal

我正在从和api读取csv,并且能够将其流式传输到熊猫数据帧中

df = pd.read_csv(iterable_to_stream(reply.iter_content()),
                                         skiprows=7,
                                         dtype=str,
                                         na_filter=False)
我检查了数据帧,一切看起来都很好。然后想把数据放到Oracle表中。它只有65行VARCHAR2(100),所以我做了这个

df.to_sql(name='KR_PERSON_DETAILS_CSV_PD',
          con=db.engine,
          index=False,
          if_exists='append',
          dtype={line: types.VARCHAR(100) for line in df.columns}
)
当我这样做时,我得到以下信息: sqlalchemy.exc.DatabaseError:(cx_Oracle.DatabaseError)ORA-01008:并非所有变量都已绑定


这怎么可能?该表是在我运行它时创建的,我仔细检查了所有列。

我发现了问题。有些列名超过30个字符。我缩短了那些超过30个字符的列名,它可以工作

您的连接字符串是什么?更改连接字符串可能会解决您的问题。类似的问题是,连接字符串是一个sqlalchemy引擎。url=f“oracle+cx_oracle://user:password@{dsn}“self.engine=create_engine(url,echo=False,max_identifier_length=128)。它生成的sql看起来不错。