我试图找到一个查询,该查询将返回所有软件包和过程中的所有字符串,例如like '2%'
。例如在动态查询中
WHEN SUBSTR(S.project,0,1) LIKE ''2%'' THEN ''newProject''
和普通查询一样
WHERE B.project LIKE '2%'
我尝试了此查询
select *
from user_source u
where u.type in ('FUNCTION', 'PACKAGE','PACKAGE BODY', 'TRIGGER','PROCEDURE')
and upper(u.text) like upper('%LIKE%')
但是我找不到在动态和静态查询中都能为like '2%'
提供适当结果的查询。
答案 0 :(得分:0)
这里是一个例子:在处理单引号时,您必须转义,使用“ q”引号机制更为简单。
SQL> create or replace function f_test return number is
2 l_cnt number;
3 begin
4 select count(*)
5 into l_cnt
6 from emp
7 where empno like '7%';
8 return l_cnt;
9 end;
10 /
Function created.
SQL> select f_test from dual;
F_TEST
----------
12
SQL> select *
2 from user_source
3 where lower(text) like '%' || q'[like '7%']' ||'%';
NAME TYPE LINE TEXT
---------- ------------ ---------- ------------------------------
F_TEST FUNCTION 7 where empno like '7%';
SQL>