oracle - 在所有 oracle 包中查找带引号和双引号的字符串

标签 oracle plsql plsql-package

我试图找到一个查询,它将返回所有包和过程中的所有字符串,如 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%' 提供正确结果的查询。

最佳答案

举个例子:当处理单引号时你必须转义,使用“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>

关于oracle - 在所有 oracle 包中查找带引号和双引号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51568831/

相关文章:

mysql - SQL 查询以透视下表中的数据

java - Oracle 将空字符串视为 Java/JPA 程序员的 NULL 问题

Oracle修改sys refcursor并在PL/SQL中返回修改后的游标

sql - Oracle 10g 中的可选条件

oracle - PL/SQL-游标。无法遍历表(varchar参数)

sql - Oracle APEX 主详细信息页面创建 : ORA-06531 error

sql - Oracle 直接加载插入 54,061,487 条记录

oracle - 在执行查询之前验证结果

plsql - Oracle 包规范何时变为无效

database - 数据库是否接受循环引用?