我有一个MS Access查询,它通过ODBC连接连接到Oracle Express数据库。
我要想出办法来追踪从MS Access发送到ODBC连接的SQL。从MS Access发送到ODBC连接的SQL。。这就是ODBC的样子(为了可读性,我对它进行了一些格式化):
SQLExecDirect:
SELECT
"INSP_ID" ,
"ROAD_ID" ,
"INSP_DATE" ,
"CONDITION"
FROM
"USER1"."ROAD_INSP" "b"
WHERE
("INSP_DATE" = (
SELECT MAX("a"."INSP_DATE" )
FROM "USER1"."ROAD_INSP" "a"
WHERE (("a"."ROAD_ID" = "b"."ROAD_ID" )
AND ("a"."INSP_DATE" BETWEEN ? AND ? )))) <-------- Question marks正如您可能已经注意到的,最后一行有问号而不是值。
这是因为MS查询提示用户通过参数提示输入值。

然而,我不知道这些问号应该代表什么。我知道它们起源于MS Access参数提示,但是它们对Oracle意味着什么,以及Oracle如何获得参数值?
发布于 2017-10-23 12:39:37
这叫做参数化语句。在基本级别上,这样的查询分两个阶段执行:首先在服务器端编译带有参数标记的查询(这些问号),然后将实际的参数值绑定到查询并运行查询,只返回与标准匹配的结果(很明显)。
https://dba.stackexchange.com/questions/189065
复制相似问题