Skip to main content
 首页 » 编程设计

python之使用Python查看表是否存在

2025年05月04日22jiqing9006

我必须连接到 Oracle 数据库并查看表是否存在。虽然我可以获得表格列表,但我无法查看我要查找的表格是否在列表中。有些表有我必须加入的关联表,有些没有,因此我必须检查。

我的列表中有什么:('NYSDOH_CI_EI_HOSPITAL',)

sql =   "SELECT table_name FROM all_tables" 
 
cur.execute(sql) 
 
searchstr = 'NYSDOH_CI_EI_HOSPITAL' 
p = re.compile(searchstr) 
 
#create data array to load in SQL results in. 
ciDataSet = [] 
 
cxRows = cur.fetchall()     
for i in cxRows: 
    #print i  # list of tables 
    if p.match(str(i)):   
        print  i 

它找不到它,即使我使用通配符也是如此。

请您参考如下方法:

fetchall() 返回一个元组列表。 所以当你这样做的时候

for i in cxRows: 

'i' 是元组类型。在您的情况下,此元组将只有一个值。您可以使用 i[0] 访问它并将其与 p 匹配。 当前您正在将元组转换为字符串,因此正则表达式将不匹配。

更正后的代码:

   sql =   "SELECT table_name FROM all_tables" 
 
    cur.execute(sql) 
 
    searchstr = 'NYSDOH_CI_EI_HOSPITAL' 
    p = re.compile(searchstr) 
 
    #create data array to load in SQL results in. 
    ciDataSet = [] 
 
    cxRows = cur.fetchall()     
    for i in cxRows: 
        #print i  # list of tables 
        if p.match(str(i[0])):   
            print  i