使用 Python 将 DATE 插入 Oracle 数据库

ORACLE 中的表....


SQL> desc mytable2

 Name                                      Null?    Type

 ----------------------------------------- -------- ----------------------------

 D                                                  DATE

 A                                                  NUMBER

 C                                                  NUMBER

Pandas 中的 DATAFRAME 具有以下数据


date    open    high

..........................

2020-07-07  375.41  378.62

我是 python 的新手,试图将这些数据添加到表中。在向其中添加 DF 数据之前尝试样本数据测试。如果我使用 COMMENTED 插入,它会失败,因为我将 STRING 传递到日期列 - 我试图在传递给 Oracle 之前查看如何在 python 中将 STRING 转换为 DATE - 请告知。


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()


守着一只汪
浏览 133回答 1
1回答

RISEBY

绑定值只能包含数据,因此包含 SQL“to_date()”函数将不起作用。基本的解决方案是使用这样的东西:cursor.execute("insert into MyTable2 values (to_date(:D,'YYYY-MM-DD'), :A, :B)" , ['2020-12-12' ,15, 15]您也可以设置默认日期格式,或者只插入一个日期而不是日期的字符串表示形式。您可以在cx_Oracle 文档中找到有用的信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python