我在这里完全迷失了:
v_sql = "SELECT widget_name, widget_url FROM widget_calls WHERE widget_name = :widget"
cursor.execute(v_sql, widget=widget_name)
df_wid = pd.read_sql(v_sql, con=connection)
结果:
pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT widget_name, widget_url FROM widget_calls WHERE widget_name = :widget': ORA-01008: not all variables bound
执行中有 1 个 bind 变量、:widget 和 1 个声明。那么,我错过了什么?
回答1
cursor.execute
调用和 pd.read_sql
调用完全不相关。您正在执行两次查询,并丢弃了第一个结果。我会删除无用的cursor.execute
。
对于 read_sql,您需要:
df_wid = pd.read_sql( v_sql, con=connection, params={'widget': widget_name})