我得到了一个带有绑定变量的查询,其中同一个绑定变量多次出现,例如:
select *
from some_table
where param1 = :parm1 and
applied_date = (select min(applied_date)
from some_table
where param1 = :parm1)
当我在 sqlplus 中运行此查询时,Oracle 似乎是按名称绑定的。ie 认识到 parm1 的第一次和第二次出现是同一个参数,并且只提示我一次 parm1 的值。但是,当我在我的 C++ 程序中将绑定变量描述到绑定描述符中时,它总是按位置绑定。
EXEC SQL DESCRIBE BIND VARIABLES FOR my_stmt INTO myBindDesc
myBindDesc->F 的值是 2 而不是 1,在我填充它们之前,查询不会正确执行,即使它是相同的值。我的问题是:有没有办法在 PRO*C 中按名称绑定?