mac m2 python connect oracle 11g
需要安装驱动
- basic
- sdk
- sqlplus
下载地址
https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html
-
目前并不支持 arm64
- instantclient-basic-macos.x64-11.2.0.4.0.zip
- instantclient-sqlplus-macos.x64-11.2.0.4.0.zip
- instantclient-sdk-macos.x64-11.2.0.4.0.zip
-
全部加压放到一个目录
-
instantclient-11.2
设置环境变量
- vim ~/.bash_profile
export ORACLE_HOME=/Users/jimogangdan/instantclient_11_2
export DYLD_LIBRARY_PATH=/Users/jimogangdan/instantclient_11_2
export PKG_CONFIG_PATH=/Users/jimogangdan/instantclient_11_2
export PATH=$ORACLE_HOME:$PATH
export NLS_LANG=.AL32UTF8
pthon 代码
import cx_Oracle
import cx_Oracle
if __name__ == '__main__':
# 连接数据库
dsn = cx_Oracle.makedsn('xxx', 1521, service_name='xxx')
connection = cx_Oracle.connect(user='system', password='xxxx', dsn=dsn)
cursor = connection.cursor()
# 执行查询
query = """
SELECT TO_CHAR(ADDTIME, 'YYYY') AS YEAR, COUNT(*) AS DATA_COUNT
FROM COMP_LN.GIM_RENKOU
GROUP BY TO_CHAR(ADDTIME, 'YYYY')
ORDER BY YEAR
"""
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
result_dict = {row[0]: row[1] for row in result}
print(result_dict)
for k,v in result_dict.items():
print(f'db name: GIM_RENKOU ,year:{k}, total: {v}')
# 关闭连接
cursor.close()
connection.close()
确保环境变量生效
- sqlplus 提示输入用户名 证明有效
- echo $DYLD_LIBRARY_PATH
执行脚本
- 切换为x86_64 : arch -x86_64 zsh
- 验证: uname -m
- 执行 :python main.py
本文来自博客园,作者:vx_guanchaoguo0,转载请注明原文链接:https://www.cnblogs.com/guanchaoguo/p/17265889.html