将输入参数绑定到 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
,而您想要搜索 包含 该参数值的字符串。
我正在尝试编写一个带有输入参数的 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
,而您想要搜索 包含 该参数值的字符串。