Oracle 如何在pl/sql中搜索字符串

Oracle 如何在pl/sql中搜索字符串,oracle,plsql,substring,Oracle,Plsql,Substring,我需要在以逗号分隔的id组中搜索邮件id是否可用 我正在尝试以下代码 它还显示不可用ID的“可用” CREATE OR REPLACE PROCEDURE sample AS email_id VARCHAR2(1000); mail VARCHAR2(100); BEGIN email_id := 'robin@gmail.com, gilbert@rediff.com, osborn@yahoo.com, allwyn@gmail.com, chris@

我需要在以逗号分隔的id组中搜索邮件id是否可用

我正在尝试以下代码

它还显示不可用ID的“可用”

CREATE OR REPLACE PROCEDURE sample 
AS
  email_id VARCHAR2(1000);
  mail     VARCHAR2(100);    
  BEGIN
    email_id := 'robin@gmail.com, gilbert@rediff.com, osborn@yahoo.com, allwyn@gmail.com, chris@yahoo.com';
    mail := 'chris@gmail.com';

    IF (INSTR(email_id, mail) IS NOT NULL) THEN
      dbms_output.PUT_LINE('available');
    ELSE
      dbms_output.PUT_LINE('sorry');
    END IF;

  END sample;
它不能正常工作。请帮帮我。

INSTR()
将返回
0
,如果它在源代码中找不到匹配的子字符串(除非输入本身为NULL)。因此,当您检查
notnull
时,它总是返回
TRUE

Hi i guess instead of declaring a full new variable and then using just use LIKE 
operator. I think it should resolve your query.
DECLARE
  lv_var VARCHAR2(100);
BEGIN
  lv_var:='avra14march@gmail.com,shubhojitr@yahoo.co.in';
  IF lv_var LIKE '%avra%' THEN
    dbms_output.put_line('Available');
  ELSE
    dbms_output.put_line('Sorry');
  END IF;
END;

OUTPUT 
------------------------------------------------
anonymous block completed
Available
------------------------------------------------
如果找到匹配的子字符串,它将返回子字符串在源中的位置。(数字)

因此,对于您的情况,
LIKE
REGEXP\u LIKE
应该会有所帮助<你仍然可以选择下面的方法

if(INSTR (EMAIL_ID, MAIL) > 0)
then
  DBMS_OUTPUT.PUT_LINE('available');
else 
  DBMS_OUTPUT.PUT_LINE('sorry');
end if;
从Oracle。

INSTR()
将返回
0
,如果它在源中找不到匹配的子字符串(除非输入本身为NULL)。因此,当您检查
notnull
时,它总是返回
TRUE

如果找到匹配的子字符串,它将返回子字符串在源中的位置。(数字)

因此,对于您的情况,
LIKE
REGEXP\u LIKE
应该会有所帮助<你仍然可以选择下面的方法

if(INSTR (EMAIL_ID, MAIL) > 0)
then
  DBMS_OUTPUT.PUT_LINE('available');
else 
  DBMS_OUTPUT.PUT_LINE('sorry');
end if;

来自Oracle。

User
like
operator。您可以这样做。User
like
operator。您可以这样做。@CDurai很高兴它能起作用,如果它对您有帮助,您能接受答案吗?:)@CDurai这个答案总是比新接受的答案好@我很高兴它能起作用,如果它对你有帮助,你能接受这个答案吗?:)@CDurai这个答案总是比新接受的答案好!你好我很高兴它帮助了你。你能告诉我答案吗:)嗨。我很高兴它帮助了你。你能告诉我答案吗:)