python編寫指令碼,刪除固定使用者下的所有表

kisslfcr發表於2016-08-03
指令碼如下:

[oracle@ycr python]$ more t_del.py 
#/usr/bin/python
#coding:utf8

import sys
import cx_Oracle

i=0
conn=cx_Oracle.connect('%s/%s@%s' % (sys.argv[1],sys.argv[2],sys.argv[3]))
cursor=conn.cursor()
cursor.execute('select table_name from user_tables')
rows=cursor.fetchall()
for row in rows:
    cursor.execute('drop table %s cascade constraints purge' % row) 
    i+=1

cursor.close()
conn.close()
print 'Drop table complete! %d tables droped' % i

測試
建立測試表,使用test使用者執行如下指令碼:
create table t1 as select * from user_tables;
create table t2 as select * from user_tablespaces;
create table t3 as select * from user_objects;

執行程式:
python t_del.py test oracle YCR2
此小程式有三個引數,test為要刪除表的使用者名稱,oracle為密碼,YCR2為連線字串。

執行結果如下:
python t_del.py test oracle YCR2
Drop table complete! 3 tables droped


------------------------------------------------------------------------------
本指令碼寫來練習用,實際意義不是很大,昨天開發同時讓幫忙spool出來一個刪除表的指令碼,自動化要求較高,所以寫了個小程式。
不過執行此程式需要安裝cx_Oracle模組,相對繁瑣。

Clark
2016.08.03


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29135257/viewspace-2122884/,如需轉載,請註明出處,否則將追究法律責任。

相關文章