Python 向 Oracle 数据库插入日期与 UUID 数据实例
本文提供 Python 连接 Oracle 数据库并插入日期及 UUID 数据的完整代码示例。通过 cx_Oracle 库,演示如何获取当前时间、生成 UUID 并执行插入操作。重点解析参数绑定与字符串拼接两种方式的差异,强调 commit 提交事务的重要性,并解决中文乱码问题,适用于需要处理时间戳和唯一标识符的数据库交互场景。
Python 向 Oracle 插入日期数据的基本实现
直接通过代码示例来展示具体实现过程。
使用参数绑定插入日期与消息
[root@yyjk DATABASE]# cat DBI.py
# -*- coding: utf-8 -*-
import cx_Oracle
import time
import datetime
class DBI (object):
def LoadDB(self,a,b):
print self
conn = cx_Oracle.connect('tlcbuser/tlcbuser@1.1.1.1/tlyy')
cursor = conn.cursor()
#coding:UTF-8
#获取当前时间
time_now = int(time.time())
#转换成localtime
#time_local = time.localtime(time_now)
#print time_local
#dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)
dt=datetime.datetime.now()
print dt
param={'stime':dt,'message':a,'phone':b}
print param;
cursor.execute('insert into tlcb_python_sms values(:stime,:message,:phone)',param)
conn.commit()
cursor.close
python 插入时间到oracle
SQL> desc tlcb_python_sms
Name Null? Type
----------------------------------------- -------- ----------------------------
STIME DATE
MESSAGE VARCHAR2(1000)
PHONE VARCHAR2(20)
[root@yyjk flask]# python test.py
lib.Mojo.Client
<lib.Mojo.Client.New object at 0x7f080e371050>
2017-11-10 11:37:40.173295
{'phone': '222', 'message': '111', 'stime': datetime.datetime(2017, 11, 10, 11, 37, 40, 173295)}
插入 UUID 与时间字段的进阶示例
补充内容:介绍如何在 Python 中将 UUID 和时间字段插入到 Oracle 数据库。
参考以下代码实现:
生成 UUID 并处理时间戳的完整代码
import sys
import getConnection
import datetime
import uuid
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
entId=str(uuid.uuid1()).replace("-","")
lastDate=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
conn = getConnection.getConnOracle114() # 获取数据连接 , 这是我自己封装的单独获取数据库链接的py文件
cursor = conn.cursor() # 获取游标
try:
cursor.execute("insert into cp_entinfo(id,last_date) values ('"+entId+"',to_timestamp('"+lastDate+"','yyyy-mm-dd hh24:mi:ss:ff'))")
except Exception, e:
print e
conn.commit() # 这里一定要commit才行,要不然数据是不会插入的
cursor.close()
conn.close()
上述关于 Python 插入日期数据到 Oracle 的示例内容至此结束,希望能为读者提供有价值的参考,欢迎继续支持本站获取更多技术分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









