Oracle-如果变量为null

时间:2018-08-01 12:18:19

标签: oracle reporting-services plsql oracle11g

当我的变量与字符串匹配时,我需要返回一些虚拟选择。这是我尝试过的:

begin
  if :someVar = 'Yes' then
  select 1 from dual;

  end if;
end;
/

我尝试为INTO子句声明一个变量,但始终收到错误“ PLS-00103:在遇到以下情况之一时遇到符号“文件结尾”。

有人可以显示我应该更改以获得所需的选择吗?我是Oracle的初学者,用于SSRS报告,设置参数默认值(基于另一个参数-在我的问题中为 someVar )时需要使用它。

3 个答案:

答案 0 :(得分:1)

您必须添加一个into :<variable>

begin
  if :someVar = 'Yes' then
    select 1 into :var from dual;

  end if;
end;
/

:var应该是您在ssrs中的重要角色

答案 1 :(得分:0)

您不需要IF语句,而是在DECODE内使用DUMMY SELECT语句,如以下代码所示(似乎您的第二个参数是的整数) 0/1 ):

begin
  select decode(:someVar,'Yes',1,0) into :someVar2 from dual;
end;
/

答案 2 :(得分:0)

为什么要完全涉及SELECTDUAL?不会很简单

:someVar2 := case when :someVar = 'Yes' then 1
                  else 0
             end;

做什么?