我可以在Oracle中的FOR循环select语句中使用词法参数吗

我可以在Oracle中的FOR循环select语句中使用词法参数吗,oracle,plsql,Oracle,Plsql,我试图在FOR循环的FROM和WHERE子句中使用词法参数。词法参数在运行时填充。尝试在TOAD中运行时,我遇到编译错误: FOR r_inv IN (SELECT i.SERIAL_NO,i.HDD_MODEL,i.HDD_SN FROM inventory i &LP_from) LOOP ... 我能这样做吗?我知道不能在PL/SQL代码中使用词法参数,但这里我实际上是在PL/SQL代码中的SQL语句中使用它 我得到的错误是: 找到“&LP\u from”,应为:*+-:CAS

我试图在FOR循环的FROM和WHERE子句中使用词法参数。词法参数在运行时填充。尝试在TOAD中运行时,我遇到编译错误:

FOR r_inv IN (SELECT i.SERIAL_NO,i.HDD_MODEL,i.HDD_SN FROM inventory i &LP_from) 
LOOP ...
我能这样做吗?我知道不能在PL/SQL代码中使用词法参数,但这里我实际上是在PL/SQL代码中的SQL语句中使用它

我得到的错误是:

找到“&LP\u from”,应为:
*+-:CASE CONNECT\u BY\u ROOT继续游标十进制数执行FALSE float for all integer MERGE MOD MULTISET NEW NULL PRIOR REM SQL字符串TRUE-或-(标识符反向


您是如何使用此PL/SQL的?您可以使用匿名块的替换变量。否则,您将需要使用动态SQL。感谢您如此快速的回答。我正在一个由xml报表调用的get过程中使用代码。我有另一个生成字符串并将其传递给词法参数的过程。我猜我必须使用它创建一个游标并在我的FOR循环中使用它。在您试图执行此操作时,&LP_from在其中包含什么?如果它类似于
,table_2 t2,其中t2.key=i.key ORDER BY i.key,t2.other_字段
,那么,不,您不能这样做,因为您在这里对它们进行了编码-您需要使用动态SQL(例如
execute IMMEDIATE
).谢谢Bob,这正是我所拥有的。我想我将不得不使用动态SQL。再次感谢。