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. Los campos obligatorios están marcados con *