Код: Выделить всё
"id_field","last_updated_date"
"123456",2021-08-07 16:26:45.299
Код: Выделить всё
df = pd.read_csv(file_path)
Код: Выделить всё
metadata = MetaData()
table = Table(
quoted_name(table_name, True),
metadata,
schema=quoted_name(self.schema, True),
autoload_with=self.engine
)
dtype_map = {}
for col in table.columns:
col_name = col.name
col_type = col.type
dtype_map[col_name] = col_type
Код: Выделить всё
df.to_sql(
name=quoted_name(table_name, True),
con=self.engine,
schema=quoted_name(self.schema, True),
if_exists=if_exists,
index=False,
dtype=dtype_map,
)
Но я получаю следующую ошибку от Oracle: '(oracledb.Exceptions.DatabaseError) ORA-00904: "LAST_UPDATED_DATE": неверный идентификатор\nСправка: https://docs.oracle.com/error-help/db/ora-00904/'
Я думаю, это потому, что, когда to_sql генерирует операторы вставки, он делает это без кавычек имен столбцов.
Код: Выделить всё
'INSERT INTO "my_schema"."my_table" (id_field, last_updated_date) VALUES (:id_field, :last_updated_date)'
Код: Выделить всё
CREATE TABLE "my_schema"."my_table"
( "id_field" VARCHAR2(50 CHAR),
"last_updated_date" TIMESTAMP (6)
)
TABLESPACE "USERS" ;
Подробнее здесь: https://stackoverflow.com/questions/798 ... -in-oracle
Мобильная версия