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.

¿Cómo se prueba si una variable de binding es nula en PL/SQL?

Estoy utilizando ORDS para crear un controlador y utilizando PL/SQL para ejecutar un script. La solicitud debe tener parámetros de búsqueda de URL “id”.

Cuando se proporciona el “id”, todo funciona bien. Pero si no se proporciona el “id”, me gustaría mostrar un mensaje de error adecuado.

Usar “IF :id = null” o “IF :id = ”” no parece funcionar. ¿Cómo debo hacer esto correctamente?

¡Gracias!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para verificar si un parámetro en ORDS no se ha suministrado o es nulo, es necesario utilizar la función NVL en PL/SQL. Por ejemplo:

    DECLARE
      l_id NUMBER := NVL(:id, 0);
    BEGIN
      IF l_id = 0 THEN
        htp.p('Error: parámetro ID ausente en la URL');
        RETURN;
      END IF;
      -- resto del script cuando se suministra el ID
    END;
    

    Este código establece el valor predeterminado de l_id en 0 utilizando la función NVL. Si el parámetro id no se ha suministrado o es nulo, l_id permanecerá en 0. Por lo tanto, es posible verificar si l_id es 0 en la instrucción IF y mostrar un mensaje de error adecuado.

    Ten en cuenta que debes utilizar htp.p para mostrar el mensaje de error en la respuesta. Además, asegúrate de retornar después de mostrar el mensaje de error, para que el resto del script no se ejecute.

Comments are closed.