Python 带oracle的sql返回ORA-01008:并非所有变量都已绑定
我正在从和api读取csv,并且能够将其流式传输到熊猫数据帧中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
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看起来不错。