我必须连接到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
它找不到它,即使我使用通配符。在
fetchall()返回元组列表。 所以当你这么做的时候
“i”是tuple类型。在您的例子中,这个元组只有一个值。您可以使用i[0]访问它并将其与p匹配。 当前正在将元组转换为字符串,因此正则表达式将不匹配。在
更正代码:
^{pr2}$为了改进@vaichidrewar的语法,可以将fetch循环简化为:
但是在查询中进行reg exp匹配会更有效:
^{pr2}$“i”选项不区分大小写匹配。您可以根据需要调整regexp。在
相关问题 更多 >
编程相关推荐