apex pl/sql如果值1为是且值2不为空,则为真
我正在尝试在页面中添加验证。我正在尝试的是,如果p2_restuser值为“y”,并且p2_usercomment不为null,则返回true,并且任何其他条件都会返回错误提示。然而,我得到以下错误 ORA-06550:第6行第16列:PLS-00103:遇到符号 “开始”应为以下情况之一:(+case mod new not) null continue avg count current exists最大最小优先sql STDEV 对所有合并时间时间戳间隔日期管道执行求和方差 如何修复此代码以使其按所需方式工作apex pl/sql如果值1为是且值2不为空,则为真,sql,plsql,oracle-apex,Sql,Plsql,Oracle Apex,我正在尝试在页面中添加验证。我正在尝试的是,如果p2_restuser值为“y”,并且p2_usercomment不为null,则返回true,并且任何其他条件都会返回错误提示。然而,我得到以下错误 ORA-06550:第6行第16列:PLS-00103:遇到符号 “开始”应为以下情况之一:(+case mod new not) null continue avg count current exists最大最小优先sql STDEV 对所有合并时间时间戳间隔日期管道执行求和方差 如何修复此代码
谢谢你好吧,我理解你的方式——你把简单的事情复杂化了。 根据您提供的数据(不是问题的太多细节,而是结果的唯一想法),最简单的方法可能是创建两个验证
- P2_RESTUSER作为字符串与“Y”比较的验证
- 将P2_USERCOMMENT验证为空比较 这种方法不需要PL/SQL。 正如其他人已经说过的,如果您坚持使用PL/SQL,那么可以提供更多信息
- 我同意Jareeq的观点,采用声明式方法而不是PLSQL块。它更简单,性能更好
我不确定这是否有帮助,但这里有一个屏幕截图,你将如何着手做这件事
下面的链接很好地介绍了各种验证类型
此外,有关统计数字的相关文章也涉及其中
两个想法。首先,您的错误是BEGIN在第6行,它与您发布的代码不一致。它失败的错误很可能在前一行。其次,您对
:P2\u RESTUSER
的赋值肯定有错误。PL/SQL中的赋值运算符是:=
。首先,如果您赋值使用:=
而不是=
以获取未来帮助,提供有关您使用的验证类型的信息:-PL/SQL表达式-PL/SQL错误-PL/SQL函数返回布尔值(我相信就是这个)-PL/SQL函数返回错误我试图将=更改为:=,但它仍然会给我相同的错误…如前所述,您还需要向我们提供完整的代码。您发布的代码的唯一开头是第1行。您的错误表明它在第6行。除非我疯了,否则这应该意味着您有更多未显示的代码。此外,请浏览ag艾恩,我注意到你有IF:P2\u USERCOMMENT
串在一起。你应该在冒号前留一个空格。
BEGIN
:P2_RESTUSER ='Y';
IF:P2_USERCOMMENT IS NOT NULL
THEN
Return True;
ELSE
Return False;
end if;
end;