WHERE子句中变量的连接,包括" /"

时间:2014-08-20 06:26:51

标签: sql

我正在尝试编写一个包,在调用时获取3个不同的变量,并基于我在DB表中执行SELECT语句的那些变量。现在,因为在该DB表中,我不必通过连接输入变量来基于STRING进行搜索,如

假设我得到了这3个变量 P_A P_B P_C

在我的select语句中我执行了像

这样的搜索
Select * from TABLE_A where HTTPDATA like '%/p_A/p_B/p_c"

我需要" /"包含在我喜欢的声明中,因为在DB列中我们有类似的条目 / XXX / SSS / AAA

你能告诉我如何实现这个目标。我试过添加||在所有变量之间但仍无效。

1 个答案:

答案 0 :(得分:1)

考虑此示例表格内容

SQL> select * from test;

NAME
--------------------
/ab/cd/ef

示例程序

DECLARE
  P_A VARCHAR2(20):='ab';
  P_B VARCHAR2(20):='cd';
  P_C VARCHAR2(20):='ef';
  D VARCHAR2(20);
  C number(2);
BEGIN
  D:='%/' ||P_A|| '/' ||P_B|| '/' ||P_C;
  SELECT COUNT(*) INTO C FROM TEST WHERE NAME LIKE D;
  DBMS_OUTPUT.PUT_LINE('count='||C);
END;
/

输出

count=1

即使你可以在上面的程序中这样做

SELECT COUNT(*) into c FROM TEST WHERE NAME LIKE '%/'||P_A||'/'||P_B||'/'||P_C;