Sql 遇到符号“=&引用;在甲骨文顶点
我试图声明一个if语句,但是当我的代码看起来非常好时,我不断地得到错误Sql 遇到符号“=&引用;在甲骨文顶点,sql,oracle,plsql,Sql,Oracle,Plsql,我试图声明一个if语句,但是当我的代码看起来非常好时,我不断地得到错误 DECLARE prole varchar2(64); result varchar2(8); begin prole :=APEX_UTIL.GET_SESSION_STATE('user_role'); if prole:='employee' then result:='44'; elsif prole:='USER' then resu
DECLARE
prole varchar2(64);
result varchar2(8);
begin
prole :=APEX_UTIL.GET_SESSION_STATE('user_role');
if prole:='employee' then
result:='44';
elsif prole:='USER' then
result:='28';
end if;
return result;
end;
在PL/SQL中,赋值运算符是
:=
,相等运算符是=
。别把它们弄混了
顺便说一句,您可以使用case
表达式完成整个过程:
begin
return
case apex_util.get_session_state('user_role')
when 'employee' then '44'
when 'USER' then '28'
end;
end;
通常在PL/SQL中,只有函数才能返回某些内容。我对Apex不太熟悉,所以这里可能没问题
您的用户角色真的是'employee'
(小写)和'user'
(大写)吗?我希望它们是一致的,例如'EMPLOYEE'
/'USER'
或'EMPLOYEE'
/USER'
结果值是真正的文本字符串(
'44'
,'28'
)还是数字(44
,28
)?删除:
,它应该可以工作。如果prole='employee'作为infor,您可以编写为:结果:=案例prole当'employee'时,当'USER'时,然后'28'结束代码>代码块将作为函数调用。在这种情况下,apex希望返回一些内容。
begin
return
case apex_util.get_session_state('user_role')
when 'employee' then '44'
when 'USER' then '28'
end;
end;