gpt4 book ai didi

python - 指定绑定(bind)变量后的实际 SQL 语句

转载 作者:行者123 更新时间:2023-11-28 20:28:37 25 4
gpt4 key购买 nike

我正在尝试记录从我的脚本执行的每条 SQL 语句。但是我想到一个我无法克服的问题。

有没有办法在指定绑定(bind)变量后计算实际的 SQL 语句。在 SQLite 中,我必须使用以下代码计算要手动执行的语句:

def __sql_to_str__(self, value,args):
for p in args:
if type(p) is IntType or p is None:
value = value.replace("?", str(p) ,1)
else:
value = value.replace("?",'\'' + p + '\'',1)
return value

CX_Oracle 似乎有cursor.parse() 工具。但我不知道如何欺骗 CX_Oracle 在执行之前计算我的查询。

最佳答案

查询从不计算为单个字符串。查询的实际文本和参数从不被插入并且不会产生包含这两者的真正的完整字符串。

这就是使用参数化查询的全部要点 - 您将查询与数据分开 - 一次性防止 sql 注入(inject)和限制,并允许轻松优化查询。数据库分别获取两者,并执行它需要执行的操作,而无需将它们连接在一起。

也就是说,您可以自己生成查询,但请注意,您生成的查询虽然可能等效,但并不是在数据库上实际执行的查询。

关于python - 指定绑定(bind)变量后的实际 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4693926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com