我正在尝试编写一个包,在调用时获取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
你能告诉我如何实现这个目标。我试过添加||在所有变量之间但仍无效。
答案 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;