使用Python查看表是否存在

2024-06-02 13:42:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须连接到Oracle数据库,看看是否存在表。虽然我可以得到一个表的列表,但我很难确定我要查找的表是否在列表中。有些表有关联的表,我必须加入,有些没有,所以我必须检查。在

我的名单上有什么:('NYSDOH\u CI\u eiu 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

它找不到它,即使我使用通配符。在


Tags: inci数据库列表tablessqloracleprint
2条回答

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

for i in cxRows:

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

更正代码:

^{pr2}$

为了改进@vaichidrewar的语法,可以将fetch循环简化为:

for tabname, in cur:
    if p.match(str(tabname)):
        print(tabname)

但是在查询中进行reg exp匹配会更有效:

^{pr2}$

“i”选项不区分大小写匹配。您可以根据需要调整regexp。在

相关问题 更多 >