工作时候遇到一个很烦人的问题,每次表空间满了之后需要手动添加多个表空间数据文件,需要一个一个改,或者一个一个点,很麻烦很浪费时间,同事建议编一个小程序解决这个问题,所以自己动手使用python写了一个小程序来解决这个问题。
工具:pyCharm
语言:python3.7.4
功能:生成多条sql语句,用于增加oracle表空间文件
输入:表空间名 路径 开始个数 结束个数
输出:n个sql添加文件sql语句
单条添加表空间数据文件SQL语句为:
ALTER TABLESPACE "newjava" ADD DATAFILE 'G:\ORACLEDATA\FILE20.DBF' SIZE 1024M AUTOEXTEND ON NEXT 10M MAXSIZE 32768M;
该语句意思为:在newjava表空间下添加数据文件,数据文件名为G:\ORACLEDATA\FILE20.DBF,其实大小为1G,自动扩展大小,每次添加10M,最大为32G。
多个数据文件需要重复上面的语句,但是需要修改数据文件的名称,所以通过python来实现上面的sql多行输出。
#!/usr/bin/python3
'''
增加表空间数据文件
输入:表空间名 name
路径 path
开始个数 start
结束个数 end
输出:n个sql添加文件sql语句
'''
def add(name,path,start,end):
f = open('ADDSQL.txt','a')
for i in range(start,end+1):
print("ALTER TABLESPACE \""+name+"\" ADD DATAFILE \'"+path+str(i)+".DBF\' SIZE 1024M AUTOEXTEND ON NEXT 10M MAXSIZE 32768M;")
f.write("ALTER TABLESPACE \""+name+"\" ADD DATAFILE \'"+path+str(i)+".DBF\' SIZE 1024M AUTOEXTEND ON NEXT 10M MAXSIZE 32768M;"+"\n")
print("表空间: ", name)
print("路径名: ", path)
print("文件开始: ", start)
print("文件结束: ", end)
print("增加个数: ", int(end)-int(start))
f.close()
print("保存SQL到当前路径")
if __name__ == '__main__':
print("==========增加表空间文件小程序=========")
name = input("请输入表空间名:")
path = input("请输入路径名:")
start = int(input("请输入表空间文件开始数:"))
end = int(input("请输入表空间文件结束数:"))
add(name,path,start,end)
python将.py文件打包生成.exe文件的小程序文件需要安装依赖pyinstaller
这里参考了这篇csdn:https://blog.csdn.net/qq_32939413/article/details/86564611