python模块cx_Oracle要求参数化查询,如果字符串正在传递其中语句。我正在从一个文件中读取查询,这些查询看起来如何从像SQL开发人员这样的IDE执行它们。python正则表达式来提取和替换查询参数 - cx_oracle要求
实例查询
select name, count(1) from employees where status = 'Active' and role= 'Manager' group by name order by 1;
我想要写一些功能,将采取此查询作为输入,然后吐出参数为一个元组:
query = 'select name, count(1) from employees where status = :1 and role= :2 group by name order by 1;'
parms = ('Active','Manager')
这样我可以通过在一个简单的函数中执行查询:
cursor_object.execute(query,parms)
不幸的是,我在正则表达式上非常糟糕,我一直试图用这个数小时来无济于事。
谢谢您抽出额外时间解释表达。你的分解和链接演示无疑帮助我理解表达式是如何构建的。 – sikrut
快速跟进问题:在完全定义之前,“replacer”函数如何引用自身?我听说过自我指涉的功能,但从来没有见过这样的功能。 – sikrut
@sikrut:在'Python'中,函数就像其他所有的东西一样是对象,所以你可以添加一个像'params'这样的属性,它本身可以是一个字符串,一个列表甚至另一个函数。 – Jan