[Python运维]使用cx_Oracle连接Oracle(高级篇)
时间:2022-07-23
本文章向大家介绍[Python运维]使用cx_Oracle连接Oracle(高级篇),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这个专题讲解Python相关方面的内容,首先是运维方面,例如数据库,Linux等,后续会有Web,爬虫等。
关于Python
Python可以说是目前运维领域最火的一门语言
在看文章之前最好对Python的语法及数据结构有所了解,具体可在网上搜索Python简明教程或廖雪峰的Python教程观看,暂时不需要了解其高级功能。
这部分会和Oracle awr 报告穿插着写
上节讲了如何利用Python连接Oracle数据库并执行SQL语句
这节的内容较多,分别是:
1.使用sys用户连接Oracle数据库 2.通过函数执行SQL语句 3.通过读取文件内的内容来执行SQL语句 4.使用Python 捕获程序异常
使用cx_Oracle获取oracle表空间的使用率
我们新建一个文件,命名为tablespace.sql,该文件的内容是获取表空间的使用率:
文件路径为:/home/oracle/script/tablespace.sql
select a.tablespace_name,a.bytes/1024/ 1024 "Sum MB",(a.bytes-b.bytes)/1024 /1024 "used MB",b.bytes/ 1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100 ,2) "percent_used"
from(select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name, sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
接下来我们上代码
代码较简单就不放源码了,大家自行手工输入
运行结果
首先我们测试下正确的输出结构
可以看到已经获取到了各个表空间的名称
然后我们故意输入给出错误的连接条件看是否可以捕获异常
我们分别输错密码和tns名称
可以看出已经捕获成功
我们是利用fetchall方法来获取数据的,返回的是一个列表(list),我们可以使用i[0]的方式只取感兴趣的列,如下图我们只获取表空间的名称
只需将代码最后一行改成:print (i[0])
至此cx_Oracle模块连接oracle(高级篇)已经讲完,下期介绍一些实用的日常运维方面的命令。
后续会讲述如何将得到的数据存入MySQL数据库供日后分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MapReduce工作笔记——Streaming输入input解压
- MapReduce工作笔记——Streaming输出output压缩
- Linux实用技巧——删除重复行
- python函数——os.path.join路径拼接(pjoin)
- python函数——pickle中的dump以及load
- python函数——Keras分词器Tokenizer
- python函数——序列预处理pad_sequences()序列填充
- MapReduce工作笔记——Streaming多路输出
- nuxt.js项目入门配置篇
- 高级综合工具StratusHLS学习笔记(4)
- 论文笔记&翻译——Enhanced LSTM for Natural Language Inference(ESIM)
- Day 5:用两个栈实现队列
- C++核心准则T.42:使用模板别名简化记法并隐藏实现细节
- Python实战——ESIM 模型搭建(keras版)
- MapReduce工作笔记——Job调度参数设置