我在Python中使用cx_Oracle來更新Apex表中的一個時間戳列。
以下是我所做的作業:
sql1 = ('SELECT * from ab.TEMPTABLE')。
sql2 = ('UPDATE AB.CTIMEUPDATED SET TSTAMP = SYSTIMESTAMP')
try:
connection=self.get_connection()
with connection.cursor() as cursor:
cursor.execute(sql2)
cursor.execute(sql1)
這并沒有更新CTIMEUPDATED表中的值,但是如果
我在 Python 外的 SQL 命令瀏覽器中運行相同的命令,它就能正常作業。
我還嘗試了其他的選項,比如說
我還嘗試了其他的選項。
d=datetime.datetime.now()
dtime=d.strftime("YYYY/MM/DD HH:mm:ss (%Y/%m/%d %H:%M:%S)"/span>)
cursor.prepare( "INSERT INTO AB.CTIMEUPDATED(Tstamp) VALUES(TO_DATE(:TS))" )
cursor.setinputsizes(TS=cx_Oracle.TIMESTAMP)
cursor.execute(None, {'TS': dtime})
或者
cursor.execute("INSERT INTO AB. CTIMEUPDATED(Tstamp) VALUES(TO_DATE(:TS, 'yyyy/mm/dd hh24:mi:ss'))", {'TS'/span>: dtime})
沒有任何作業,也沒有錯誤。
CTIMEUPDATED表有一列TSTAMP,它不能為空,資料型別為TIMESTAMP(6)
注意:我不需要毫秒,只需要日期&;時間應該沒問題
uj5u.com熱心網友回復:你在這里有兩個選擇
要么你通過使用相應的方法commit事務
cursor.execute("INSERT INTO AB. CTIMEUPDATED(Tstamp) VALUES(TO_DATE(:TS, 'yyyy/mm/dd hh24:mi:ss'))", {'TS'/span>: dtime})
connection.commit()
或者你使用autocommit設定為ON
connection.autocommit = True
cursor.execute("INSERT INTO AB.CTIMEUPDATED(Tstamp) VALUES(TO_DATE(:TS, 'yyyy/mm/dd hh24:mi:ss'))", {'TS' /span>: dtime})
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/308149.html
標籤:
