Oracle
 sql >> Base de données >  >> RDS >> Oracle

Requête de procédure stockée Oracle comme ne pas fonctionner avec le curseur

Vous utilisez des guillemets inutiles :

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>

Votre double guillemet pourrait être utile si vous utilisiez un SQL dynamique, mais dans votre requête statique, cela signifie que vous recherchez un modèle contenant des guillemets dans le cadre de la chaîne à rechercher.