将输入参数绑定到 PLSQL 游标中的 like 子句

binding input parameter to a like clause in a cursor in PLSQL

我正在尝试编写一个带有输入参数的 PLSQL 过程,该输入参数将分配给游标内的 like 子句。但是绑定无法正常工作。请帮我解决一下。

PROCEDURE SEARCH_DONOR (p_nic_ VARCHAR2,
                        records_ OUT Sys_Refcursor) 

  AS

  v_stmt_str      VARCHAR2(200);
  v_stmt_str2      VARCHAR2(4000);

  BEGIN

       OPEN  records_  FOR
      SELECT DONOR_ID_        Id,
             FIRST_NAME_      First_Name,
             LAST_NAME_       Last_Name,
             DOB_             Date_of_Birth,
             NIC_             NIC,
             CONTACT_NUMBER_  Contact_Number,
             BLOOD_TYPE_ID_   Blood_type

      FROM MOISLK_DONOR_INFO_TAB
      WHERE NIC like '%p_nic_%'
      AND CLIENT_STATUS_ = 0
      ORDER BY DONOR_ID_;

  END SEARCH_DONOR;

应该是

WHERE NIC like '%' || p_nic_ || '%'

因为您正在搜索字符串 p_nic,而您想要搜索 包含 该参数值的字符串。