Oracle
 sql >> Database >  >> RDS >> Oracle

Query sulla procedura memorizzata Oracle come se non funzionasse con il cursore

Stai usando virgolette non necessarie:

SQL> declare
  2      mat_id        varchar2(100) := 'X';
  3      searchString  varchar2(100) := ''''||mat_id||'%''';
  4      searchString2 varchar2(100) := ''||mat_id||'%';
  5      num number;
  6  begin
  7      select count(1)
  8      into num
  9      from dual
 10      where 'X' like searchString;
 11      --
 12      dbms_output.put_line('1. num= ' || num);
 13      --
 14      select count(1)
 15      into num
 16      from dual
 17      where 'X' like searchString2;
 18      --
 19      dbms_output.put_line('2. num= ' || num);
 20  end;
 21  /
1. num= 0
2. num= 1

PL/SQL procedure successfully completed.

SQL>

La tua doppia virgoletta potrebbe essere utile se utilizzi un SQL dinamico, ma nella tua query statica significa che stai cercando un modello contenente virgolette come parte della stringa da cercare.