Comment restreindre les paramètres d'entrée NULL dans une procédure stockée oracle

StackOverflow https://stackoverflow.com/questions/116525

  •  02-07-2019
  •  | 
  •  

Question

J'ai écrit quelques procédures stockées Oracle dans celles-ci. Il y a plus de 20 paramètres d'entrée et plus de 10 paramètres sont requis. déclare dans la définition de procédure elle-même ce qui peut restreindre le paramètre d'entrée nul ou devrai-je vérifier chaque valeur et lever l'exception si la valeur requise est nulle?

Était-ce utile?

La solution

En PL / SQL, je ne connais aucun moyen de vérifier chacun d'eux.

Si vous appelez la procédure stockée à partir d'une bibliothèque externe, cette bibliothèque peut avoir cette fonctionnalité. Ce n'est probablement pas probable car des paramètres d'entrée NULL sont fréquemment requis.

Vous pouvez créer une procédure auxiliaire PL / SQL qui, à partir d’une valeur, lève une exception si elle est nulle pour enregistrer du code redondant. Vous pouvez ensuite écrire un bloc de perl / python / groovy qui extrairait votre déclaration de procédure et lancerait ces appels à votre procédure de contrôle nul.

Autres conseils

Je sais que la question est ancienne mais il existe une autre option (décrite ici ):

SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;

Vous pouvez définir ce type (et number_not_null , etc.) dans le même package que vos procédures stockées ou dans leur propre package si vous souhaitez les utiliser à de nombreux endroits. Vous pouvez ensuite déclarer les paramètres de ces types.

Si NULL est passé en argument, vous obtiendrez un message d'erreur très utile:

cannot pass NULL to a NOT NULL constrained formal parameter
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top