Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Postional bind变量查询oracle数据库中的子字符串_Python_Database_Oracle - Fatal编程技术网

Python 使用Postional bind变量查询oracle数据库中的子字符串

Python 使用Postional bind变量查询oracle数据库中的子字符串,python,database,oracle,Python,Database,Oracle,我无法在代码中使用位置绑定 我的代码: value ="Some value" cur.execute("Select * from TABLENAME where FIELD like '%:1%' ",{'1':value}) 错误: cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number 如果您正在尝试使用动态SQL查询,则应按如下方式执行: query := 'select * From my_table w

我无法在代码中使用位置绑定

我的代码:

value ="Some value"

cur.execute("Select * from TABLENAME where FIELD like '%:1%' ",{'1':value})
错误:

cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number

如果您正在尝试使用动态SQL查询,则应按如下方式执行:

query := 'select * From my_table where cola = :i';
EXECUTE IMMEDIATE query USING 'value';
value ="%Some value%"

cur.execute("select * from TABLENAME where COLUMNNAME like :1", {'1':value})

此处“:i”是绑定变量。这将被您在“使用”部分的“立即执行”命令中传递的值所替换。

如果您使用的是尝试使用动态SQL查询,那么您应该这样做:

query := 'select * From my_table where cola = :i';
EXECUTE IMMEDIATE query USING 'value';
value ="%Some value%"

cur.execute("select * from TABLENAME where COLUMNNAME like :1", {'1':value})

此处“:i”是绑定变量。这将被您在USING部分的EXECUTE IMMEDIATE命令中传递的值替换。

我不懂Python,因此这是未经测试的,但Oracle将您的
:1
解析为文本文字,因为它在引号中。我认为在将通配符传递给光标之前,需要先构造通配符,如下所示:

query := 'select * From my_table where cola = :i';
EXECUTE IMMEDIATE query USING 'value';
value ="%Some value%"

cur.execute("select * from TABLENAME where COLUMNNAME like :1", {'1':value})

我不懂Python,所以这是未经测试的,但Oracle将您的
:1
解析为文本文本,因为它在引号中。我认为在将通配符传递给光标之前,需要先构造通配符,如下所示:

query := 'select * From my_table where cola = :i';
EXECUTE IMMEDIATE query USING 'value';
value ="%Some value%"

cur.execute("select * from TABLENAME where COLUMNNAME like :1", {'1':value})