Панды to_sql не работает.
Я инициализирую свой движок с помощью sqlalchemy. Я также импортировал cx_Oracle на всякий случай. Для целей тестирования я использовал пример кода, предоставленный документацией pandas.DataFrame.to_sql. Ниже приведен пример:
import pandas as pd
from sqlalchemy import create_engine
import cx_Oracle
# specify oracle connection string
oracle_connection_string = (
'oracle+cx_oracle://{username}:{password}@' +
cx_Oracle.makedsn('{hostname}', '{port}', service_name='{service_name}')
)
# create oracle engine
engine = create_engine(
oracle_connection_string.format(
username='username',
password='password',
hostname='aaa.aaa.com',
port='1521',
service_name='aaa.aaa.com',
)
)
# test to_sql
# Create a table from scratch with 3 rows
df = pd.DataFrame({'name' : ['User 1', 'User 2', 'User 3']})
df.to_sql('schema.table_name', con=engine, if_exists='replace', index_label='id')
engine.execute("SELECT * FROM schema.table_name").fetchall()
Если таблица не была создана в первую очередь, я получу ошибку «ORA-00942: таблица или представление не существует». В противном случае я просто получу пустой список.
К вашему сведению, я протестировал функцию read_sql, и она работает. Другой подход, который я попробовал, состоит в том, чтобы указать схему в выражении параметра, пожалуйста, обратитесь к ссылкам в разделе комментариев.
Согласно моему пониманию, sqlalchemy также вызывает cx_Oracle. Тем не менее, вставка с использованием cx_Oracle работает.
Просто хочу знать, сталкивался ли кто-нибудь с этим раньше. Спасибо.