Parametrizar un cursor en PL SQL

Hola a todos, hoy os voy a explicar como podemos parametrizar un cursor en PL SQL.

Cuando trabajamos con cursores en PL SQL, es posible que necesitemos que alguna parte del cursor sea parametrizable y dale nosotros un valor.

Os dejo un tutorial sobre cursores, os recomiendo echarle un ojo antes.

Cursores en PL/SQL

Para parametrizar cursores, tenemos que indicarlos entre paréntesis, indicando su nombre y tipo.


CURSOR cursor_name(param1 tipo_param1, ...)
IS
SELECT_statement;

Veamos un ejemplo con una tabla de clientes, mostrando los clientes de un país concreto pedido por teclado.


declare
  v_pais clientes.pais%type := &pais;
  cursor clientes_cursor(p_pais clientes.pais%type) is
    select nombrecliente 
    from clientes c
    where pais = p_pais;
  
begin
 
  for registro in clientes_cursor(v_pais) loop
   
    dbms_output.put_line(registro.nombrecliente);
   
  end loop;
 
end;
/

Si necesitamos más parámetros, solo tenemos que añadírselos.

Veamos un ejemplo con una tabla de clientes, mostrando los clientes de un país concreto pedido por teclado.


declare
  v_pais clientes.pais%type := &pais;
  v_limitecredito clientes.limitecredito%type := &limitecredito;
  cursor clientes_cursor(p_pais clientes.pais%type, p_limitecredito clientes.limitecredito%type) is
    select nombrecliente 
    from clientes c
    where pais = p_pais and limitecredito = p_limitecredito;
  
begin
 
  for registro in clientes_cursor(v_pais, v_limitecredito) loop
   
    dbms_output.put_line(registro.nombrecliente);
   
  end loop;
 
end;
/

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.