在Oracle APEX中用PL/SQL获取用户输入遇ORA-06550错误求助
解决Oracle APEX中PL/SQL获取用户输入的ORA-06550错误
错误原因
你用的&x是SQL*Plus、Oracle SQL Developer这类客户端工具的替代变量语法,但Oracle APEX的PL/SQL执行环境(不管是SQL Commands还是应用内的PL/SQL逻辑)不支持这种语法,所以触发ORA-06550语法错误。
正确实现方式
场景1:在APEX的SQL Commands中测试
用APEX支持的绑定变量(语法:变量名)替代&x,执行时会自动弹出输入框让你输入数值:
declare a number; begin a := :x; dbms_output.put_line(a*6); end;
注意:要在SQL Commands页面右上角点击「DBMS Output」按钮开启输出显示,才能看到计算结果。
场景2:在APEX应用页面中实现用户输入
如果是要在APEX应用里做交互式的输入计算,步骤如下:
- 创建一个页面项(比如命名为
P1_INPUT_NUM,类型选择「Number Field」),作为用户输入的控件。 - 创建一个按钮,在按钮的「PL/SQL代码」处理中写逻辑,直接引用页面项的值:
declare a number; begin a := :P1_INPUT_NUM; -- 把计算结果赋值给另一个页面项(比如P1_RESULT)来展示 :P1_RESULT := a * 6; end; - 创建页面项
P1_RESULT(类型选「Display Only」),用来显示最终的计算结果。
内容的提问来源于stack exchange,提问作者Vishal Gupta
相关产品推荐
相关产品推荐

