Frage

Ich habe writtent einige Oracle StoredProcedures in diesen gibt es mehr als 20 Eingangsparameter sind und von ihnen morethen 10 Parameter erforderlich sind, möchte ich alle mit einem gewissen Wert und wollen keine Nullwerte für das akzeptieren, Gibt es etwas, dass ich es kann erklären in dem Verfahren defination selbst, die null-Eingabeparameter beschränken kann oder muss ich für jeden Wert zu überprüfen und die Ausnahme auslösen, wenn der gewünschte Wert null ist?

War es hilfreich?

Lösung

In PL / SQL Ich weiß nicht, von einem Weg, um jeden zu überprüfen.

Wenn Sie die gespeicherte Prozedur aus einer externen Bibliothek aufrufen, könnte die Bibliothek, die Funktionalität. Dies ist wahrscheinlich nicht wahrscheinlich, weil häufig NULL Eingabeparameter erforderlich sind.

Sie können einen Helfer PL / SQL-Prozedur machen, dass ein Wert angegeben, wird eine Ausnahme ausgelöst, wenn es null ist auf redundanten Code zu speichern. Sie könnten dann ein Stück Perl / Python / groovy schreiben, die Ihre Prozedurdeklaration würde schlürfen und diese Anrufe an Ihre null Prüfschema Kurbel aus.

Andere Tipps

Ich weiß, dass dies eine alte Frage, aber es ist eine weitere Option (beschrieben hier ):

SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;

Sie können mit dieser Art definieren (und number_not_null etc) entweder im gleichen Paket wie Ihre gespeicherte Prozeduren oder in ihrem eigenen Paket, wenn Sie wollen, dass sie in vielen Orten verwenden. Anschließend können Sie erklären Parameter dieser Art zu sein.

Wenn NULL als Argument übergeben wird, werden Sie eine sehr nützliche Fehlermeldung:

cannot pass NULL to a NOT NULL constrained formal parameter
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top