Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3548868
  • 博文数量: 715
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7745
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(715)

文章存档

2023年(75)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

最近访客

分类: Python/Ruby

2019-03-11 23:36:12

面对100多套ORACLE数据库,领导想问数据库链都有多少啊,给我查出来。
我:好的
conn.txt 内容是
scott/tiger@orcl1
scott/tom@zhcx2
...(以下是一百个连接信息,略)

import cx_Oracle

 

with open("conn.txt", "r") as f:

    for line in f.readlines():

        line = line.strip('\n')  #去掉列表中每一个元素的换行符

        print(line)

   

        conn = cx_Oracle.connect(line)

        cursor = conn.cursor()

        sql = "select owner,db_link,username, " \
            " host from dba_db_links where owner<>'SYS' and db_link<>'SYS_HUB' "

        cursor.execute(sql)

        one = cursor.fetchall()

        for x in one:

            print (line,x)   

        cursor.close()

        conn.close()

把上述脚本存为dl_link.py,然后用python 3执行

手工粘贴吧,直接把结果放到excel还不会...
将sql语句改为其他的也可,例如查询某个参数都是什么...

-------------------------------------------------------------------------
取每个数据库大小

import cx_Oracle

 

with open("conn2.txt", "r") as f:

    for line in f.readlines():

        line = line.strip('\n') 

        #print(line)

   

        conn = cx_Oracle.connect(line)

        cursor = conn.cursor()

        sql = "select trunc(sum(bytes)/1024/1024/1024) g from dba_data_files"

        cursor.execute(sql)

        one = cursor.fetchall()

        for x in one:

            print (line,x[0],'G')   

        cursor.close()

        conn.close()


---------------------------------------------------------------------------------
取数据库中都有哪些用户

import cx_Oracle

 

with open("conn3.txt", "r") as f:

    for line in f.readlines():

        line = line.strip('\n')  #去掉列表中每一个元素的换行符

        l=line.split(',')

   

        #conn = cx_Oracle.connect(l[1]) #取连接串

        conn=cx_Oracle.connect(l[1],l[2],l[3])

        cursor = conn.cursor()

        sql = "select username from dba_users where account_status='OPEN' order by 1 "

        cursor.execute(sql)

        one = cursor.fetchall()

       

        f=open("user1.txt","a")

        for x in one:

            print (l[3],",",l[0],",",x[0],file=f)

        cursor.close()

        conn.close()

print("I got it.")



阅读(73061) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~