Python使用cx_Oracle模块可以连接并操作oracle数据库,下面给出具体方法,仅供参考
#coding=utf-8
import cx_Oracle
db_connect_info = "scott/tiger@192.168.7.170:1521/orcl"
db_base_table = "test01"
#连接数据库
db_conn = cx_Oracle.connect(db_connect_info)cursor = db_conn.cursor()
#获取表定义
get_base_table_stru = "SELECT DBMS_METADATA.GET_DDL('TABLE','" + db_base_table.upper() + "') FROM DUAL"
cursor.execute(get_base_table_stru)
db_base_table_content = cursor.fetchall()
for row in db_base_table_content:
db_base_table_ddl = str(row[0])
print db_base_table_ddl
#获取表中记录数
db_get_table_count_dql = "SELECT COUNT(*) FROM " + db_base_table
try:
cursor.execute(db_get_table_count_dql)
db_get_table_count_list = cursor.fetchall()
for row in db_get_table_count_list:
db_get_table_count = row[0]
print db_get_table_count
except:
print "cx_Oracle.DatabaseError:ORA-00942 表或视图不存在"
db_close(db_conn,cursor)
sys.exit(1)
#获取表中类型
db_get_max_table_column_name_types_dql = "SELECT COLUMN_NAME,DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '" + db_base_table.upper() + "'"
cursor.execute(db_get_max_table_column_name_types_dql)
db_max_table_column_name_types = cursor.fetchall()
for column_name,data_type in db_max_table_column_name_types:
print "column_name = ",column_name
print "data_type = ",data_type
#断开数据库连接
cursor.close()
db_conn.close()