Вставка ДАТЫ в базу данных Oracle с Python - PullRequest
0 голосов
/ 09 июля 2020

ТАБЛИЦА в ORACLE ....

SQL> desc mytable2
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 D                                                  DATE
 A                                                  NUMBER
 C                                                  NUMBER

DATAFRAME в Pandas имеет следующие данные

date    open    high
..........................
2020-07-07  375.41  378.62

Я новичок в python пытаюсь добавить эти данные к столу. ПОПРОБУЙТЕ ТЕСТ ОБРАЗЕЦ ДАННЫХ, прежде чем добавлять в него данные DF. Если я использую вставку COMMENTED, она не работает, так как я передаю столбец STRING до даты - я пытаюсь понять, как преобразовать STRING в DATE в python, прежде чем перейти к Oracle - Пожалуйста, сообщите.

import cx_Oracle
import pandas as pd

connect=cx_Oracle.connect('astro/astro@10.0.0.145:1621/analytica')
cursor=connect.cursor()

#cursor.execute(" insert into TTTT values (:1, :2, :3, :4, :5, :6)", ['2020-10-10', 12,12,12,12,12]
cursor.execute("insert into MyTable2 values (:D, :A, :B)" , [(to_date('2020-12-12','yyyy-mm-dd' ) ,15, 15])
connect.commit()

1 Ответ

0 голосов
/ 10 июля 2020

Значения привязки могут содержать только данные, поэтому включение функции SQL "to_date ()" не будет работать. Решение basi c состоит в том, чтобы использовать что-то вроде этого:

cursor.execute("insert into MyTable2 values (to_date(:D,'YYYY-MM-DD'), :A, :B)" , ['2020-12-12' ,15, 15]

В качестве альтернативы вы можете установить формат даты по умолчанию или просто вставить дату вместо строкового представления даты.

Вы можете найти полезную информацию в документации cx_ Oracle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...