亲爱的技术人员,
我们的应用程序非常频繁地触发如下查询。
select name,emp_id,prod_id,prod_name, .... from appuser.table where emp_id=:1 and prod_id=:2;
当收到有问题的SQL_TEXT时,我们通常会花费大量时间查找SQL_ID。在SQL * Plus中,我们为emp_id,prodnum等变量提供了一个选项。如下所示
VARIABLE emp_id NUMBER; EXEC :emp_id := 101;
但是,我们有:1,:2作为绑定变量名称,在运行SQL之前无法设置它们,因为它们仅仅是数字(尽管被Oracle视为绑定变量)。我们不能要求应用程序供应商重建所有删除这些编号的绑定变量的查询。
所以,我在SQL * Plus中寻找以下任何选项:
我一直在尝试并寻找各种选择,但没有具体针对我的选择。在这方面的任何帮助将不胜感激。可以解决此问题的任何版本的Oracle数据库都可以。
在SQLPlus中,您可以使用&
声明一个替换变量,例如:
select name, emp_id, prod_id, prod_name, ....
from appuser.table
where emp_id = &emp_id and prod_id = &prod_id;
这将使SQLPlus在执行时为每个变量发出提示,要求您提供一个值,例如:
Enter value for emp_id: