es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mostrar mensaje si la tabla está vacía.

Tengo una tabla y si existen datos debo mostrar los datos con dbms_output. Si la tabla está vacía, debo escribir un mensaje “la tabla está vacía”.

Quiero usar cursores y no sé cómo debería ser la condición cuando la tabla está vacía.

Esto funciona bien:

declare
cursor cursor_name is select nr, name from branch;
begin 
    for i in cursor_name
    loop
        dbms_output.put_line('Número: ' || to_char(i.nr) || ' Nombre: ' || i.name);
    end loop;
end;
/
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar una condición cuando la tabla está vacía, puedes utilizar el atributo SQL%NOTFOUND después de abrir el cursor para verificar si hay algún dato en la tabla. Aquí tienes un ejemplo de código:

    declare
      cursor cursor_name is select nr, name from branch;
      v_count number;
    begin 
      open cursor_name;
      fetch cursor_name into v_count;
      if cursor_name%NOTFOUND then
        dbms_output.put_line('La tabla está vacía');
      else
        dbms_output.put_line('Datos encontrados:');
        dbms_output.put_line('----------------------');
        -- recorre los datos del cursor y los muestra
        for i in cursor_name
        loop
          dbms_output.put_line('Número: ' || to_char(i.nr) || ' Nombre: ' || i.name);
        end loop;
      end if;
      close cursor_name;
    end;
    /
    

    En este ejemplo, después de abrir el cursor, se utiliza una instrucción fetch para recuperar la primera fila de datos. Si SQL%NOTFOUND es verdadero, significa que no hay datos en la tabla, por lo que se muestra el mensaje “La tabla está vacía”. Si hay datos, se ejecuta el bucle a través de los datos del cursor como antes. Después de terminar el bucle, se cierra el cursor.

Comments are closed.