python连接oracle数据库

一、下载cx_Oracle

pip install cx_Oracle

二、创建连接

# 第一种创建方式
conn = cx_Oracle.connect(f"{user}/{password}@{host}:{port}/{service}")
# 第二种创建方式
conn = cx_Oracle.connect(user,password, f'{host}:{port}/{service}')

三、获取游标、执行sql语句

conn = cx_Oracle.connect(f"{user}/{password}@{host}:{port}/{service}")

cursor = conn.cursor()
sql = 'select * from test'
cursor.execute(sql)  # 执行sql语句
data = cursor.fetchall()  # 获取所有数据
# one_data = cursor.fetchone()  # 也可以获取一条数据
cursor.close()  # 关闭游标
conn.close()  # 关闭连接

四、插入数据

conn = cx_Oracle.connect(f"{user}/{password}@{host}:{port}/{service}")

cursor = conn.cursor()
sql = 'INSERT INTO test values (TEST_SEQ.nextval, 12)'
cursor.execute(sql)  # 执行sql语句
conn.commit()  # 提交
cursor.close()  # 关闭游标
conn.close()  # 关闭连接

注:test_seq.nextval是我创建的序列,创建序列的sql语句如下,TEST_SEQ时创建的序列名字

CREATE SEQUENCE TEST_SEQ INCREMENT BY 1 START WITH 1 NOMAXvalue NOCYCLE NOCACHE;

五、常用时间查询

# 查询距离某一个年已经过去多少年
select to_char(sysdate,'yyyy') - 1995 nowYear from dual;
# 查询年份
select '中国'||TO_CHAR(sysdate, 'yyyy') nowYear from dual;
# 查询月份
select to_char(sysdate,'mm') nowMonth from dual;
# 查询周几
SELECT TO_CHAR(sysdate-1, 'd') nowDay from dual;
# 查询几号
SELECT TO_CHAR(sysdate, 'dd') nowDay from dual;
# 查询时一年的第几周
select to_char(sysdate,'ww') from dual; 
select to_char(sysdate,'iw') from dual;

SELECT to_char(sysdate, 'q') FROM dual;  # 季节
SELECT TO_CHAR(SYSDATE, 'hh24') FROM dual;  # 小时
SELECT TO_CHAR(SYSDATE, 'mi') FROM dual;  # 分钟
SELECT TO_CHAR(SYSDATE, 'ss') FROM dual;  #  秒

posted @   hziwei  阅读(323)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示