我有一个选择:
select * from table1 where col1=10;
另一个选择:
select * from table1 where col1=11;
Sql解析器将它们解析为不同的sqls ..我想让SQL PARSER解析语句一次,只需更改where子句中的参数.我能这样做吗?有什么想法吗?请与我分享..非常感谢.
PS:我选择的是:
select * from v$sql where parsing_user_id=55 (my user id)
并且当我运行第一个查询时插入新行,当我运行第二个查询时插入另一行.如果我再次运行第一个或第二个查询,则现在插入新行(意味着sql解析器不会再次解析它)
您需要以某种形式使用绑定变量.例如,如果您在SQL*Plus中执行此操作,则可以执行以下操作:
var myval number; exec :myval := 10; select * from table1 where col1 = :myval; exec :myval := 11; select * from table1 where col1 = :myval;
如果你从其他地方打电话,那么机制就会略有不同,所以你可能需要更具体一些.