关于 cx_Oracle 执行语句上的一些问题

2016-08-10 16:59:58 +08:00
 Jolly23

众所周知, cx_Oracle 在运行 sql 语句时,可以这么写:

连接过程忽略,只看执行

sql = '''select phone_num from address_book where name = :1'''

cursor.execute(sql_sentence, ('爸爸'))

这样, sql 中的:1 位置就被替换成了 ‘爸爸’

问题来了,我要把句子这么写:

sql = '''select phone_num from address_book where name like %:1% '''

只要包含关键字就取出,可是 ------> %:1% <----- 这么写是错误的,-----> '%:1%' <----- 这么写也是错误的 请问涉及到 like 的句子,怎么写能使用上 cx_Oracle 的参数替换? cursor.execute(sql_sentence, ('爸爸'))

2679 次点击
所在节点    问与答
2 条回复
hcymk2
2016-08-10 18:02:25 +08:00
cursor.execute(sql_sentence, ('%爸爸%'))
这样?
wowpanda
2016-08-10 22:26:37 +08:00
可以用字符串格式化啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/298438

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX