sql >> Base de Datos >  >> RDS >> Oracle

Consulta de procedimiento almacenado de Oracle como no trabajar con el cursor

Estás usando comillas innecesarias:

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>

Sus comillas dobles podrían ser útiles si usara un SQL dinámico, pero en su consulta estática significa que está buscando un patrón que contenga comillas como parte de la cadena a buscar.