如何在plsql中传递运行时变量

如何在plsql中传递运行时变量,plsql,oracle-apex,Plsql,Oracle Apex,我想在运行时传递变量,当我在oracle apex 4.1中运行此程序时,我得到以下错误消息 set serverout on declare first_num number(8):=# second_num number(8):=&num1; result number(8); begin result:=(first_num/second_num+second_num); dbms_output.put_line('the resultant value is:'|

我想在运行时传递变量,当我在oracle apex 4.1中运行此程序时,我得到以下错误消息

set serverout on
declare
first_num number(8):=#
second_num number(8):=&num1;
result number(8);
begin
result:=(first_num/second_num+second_num);
dbms_output.put_line('the resultant value is:'||result);
end;

&
替换是sqlplus客户端的一个功能,而不是PL/SQL本身。所以,您的问题是针对您正在使用的“Oracle Apex”客户机的(从未听说过抱歉)。我的理解是,其他一些GUI客户端也支持
&
替换。我自己只使用sqlplus


&num
无效。但是默认情况下,sqlplus会在将代码传递给服务器进行解析/执行之前将其替换为相应的值。如果您实际上是在开发程序,那么您需要为您的语言/框架查看绑定变量。很抱歉,我没有适合您的解决方案,希望这能有所帮助。

如果您正在讨论从APEX内部启动sqlplus会话到后端服务器以执行,那么您的脚本看起来很好。但在本例中,我将把变量改为&1和&2,而不是&num和&num1,并尝试一下

但是如果您试图直接在APEX中执行这段代码,那么Sodved是正确的,您需要首先将变量分别标记为:num和:num1,然后调用模块必须将变量绑定到它,然后才能执行它

希望这能有所帮助。

不要写东西

ORA-06550: line 2, column 22:
PLS-00103: Encountered the symbol "&" when expecting one of the following:
( - + case mod new not null continue avg count current exists max min prior sql stddev
   sum variance execute forall merge time timestamp interval
date
pile

它在apex中工作

first_num number(8):=#
second_num number(8):=&num1;
first_num number(8):=:num;
second_num number(8):=:num1;