if语句是否不包含我要搜索的变量?

时间:2018-10-17 03:03:44

标签: oracle plsql oracle11g

我目前有一个函数,该函数接受类型为P_Item_Code的参数varchar2

我想知道是否有 If does not exist条声明,我可以 返回一个字符串

Item Code does not exist吗?

下面的想法与我的想法类似:

(P_Binder Number number, P_Item_Code varchar2)
 If P_item_code not exists THEN
 R_Output := 'Item code does not exist'
 Return R_Output;

3 个答案:

答案 0 :(得分:1)

我这样做的方法只是使用count()

为此,请声明此变量:

record_count number;

然后在函数体内使用它,就像这样:

select count(*) into record_count
from some_code_table
where item_code_key = P_item_code;

if record_count=0 then
  R_Output := 'Item code does not exist';
  Return R_Output;
end if;

只需相应地替换标识符即可。

答案 1 :(得分:0)

我认为您想检查P_Item_Code是否存在非null值。 您可以检查变量是否为null,也可以通过添加DEFAULT NULL来增加变量(对于根本没有传递参数的情况)。

(P_Binder Number, P_Item_Code varchar2 DEFAULT NULL) --If the calling program doesn't pass anything it will be null
 If P_item_code IS NULL THEN
   R_Output := 'Item code does not exist'
 Return R_Output;

答案 2 :(得分:0)

您可以使用nvl()函数直接绑定:

R_Output := nvl(to_char(P_Binder) ,'Item code does not exist');