1 创建存储过程
CREATE OR REPLACE PROCEDURE PROC_TABLESPACE AS
BEGIN
delete from tablespace_temp;
commit;
insert into tablespace_temp
SELECT UPPER(F.TABLESPACE_NAME) ,
D.TOT_GROOTTE_MB ,
D.TOT_GROOTTE_MB - F.TOTAL_BYTES ,
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') ,
F.TOTAL_BYTES ,
F.MAX_BYTES
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1;
commit;
END PROC_TABLESPACE;
2 python调用存储过程
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import cx_Oracle
conn=cx_Oracle.connect('system/system@192.168.8.210/subE3')
c=conn.cursor()
c.callproc('PROC_TABLESPACE')
x=c.execute('select * from tablespace_temp')
result=x.fetchall()
print result[1][3]
c.close()
conn.close()