DB2 - Abrir el siguiente cursor si el primer cursor no devuelve nada

Lo que estoy tratando de hacer:

Tengo dos cursores en un procedimiento almacenado de DB2. Me gustaría ejecutar el primero, si devuelve un conjunto de resultados vacío, me gustaría ejecutar el siguiente cursor. ¿Cuál es la sintaxis para lograr esto? ¿Puedo evaluar los resultados de un cursor antes de abrirlo? Gracias.

preguntado el 22 de mayo de 12 a las 18:05

¿Cuál es el problema al abrir el cursor y verificar los resultados? No soy fanático de usarlos, pero poder hacer esa lógica es una de sus ventajas. Si publica las consultas, entonces quizás otros puedan descubrir cómo resolver el problema. -

No, no puede evaluar si una declaración devolverá filas o no hasta que realmente la ejecute. Si no se devuelven filas, vuelve SQLCODE = 100. El optimizador puede adivinar la probabilidad de resultados, pero por lo general no tiene acceso a ese nivel bajo durante el uso normal. Como dice @Gordon, publique las consultas, tal vez se pueda escribir algo mejor. -

1 Respuestas

La Libro de cocina DB2 SQL tiene muchos ejemplos útiles, incluido el uso de cursores y el manejo de errores. En lo que respecta a las pruebas de salida, es posible que le resulte más fácil rodear el cursor con un IF EXISTS() prueba que ejecuta la misma consulta que el cursor.

respondido 30 nov., 12:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.