Je veux simplement sélectionner des valeurs dans des variables à l'intérieur d'une procédure.Reasonable SELECT ... INTO Solution Oracle pour le cas de plusieurs lignes OU
SELECT blah1, blah2 EN var1_, var2_ DE ...
Parfois, une grande requête complexe aura aucune ligne parfois, il aura plus d'un - deux cas conduisent à des exceptions. J'aimerais remplacer le comportement d'exception avec un comportement implicite similaire à:
Aucune ligne ne = pas de changement de valeur, plusieurs lignes = utiliser la dernière
Je peux limiter le jeu de résultats assez facilement pour le cas « multiples lignes » mais "no rows" est beaucoup plus difficile pour les situations où vous ne pouvez pas utiliser une fonction d'agrégation dans le SELECT.
Existe-t-il des solutions de contournement ou des suggestions spéciales? Vous cherchez à éviter de réécrire de manière significative les requêtes ou à les exécuter deux fois pour obtenir un rowcount avant d'exécuter SELECT INTO.
Vous pouvez également déclarer la requête en tant que curseur, l'ouvrir, l'extraire une fois et vérifier l'attribut% trouvé. – kurosch