Pergunta

Eu writtent alguns StoredProcedures Oracle em destes, existem mais de parâmetros 20 de entrada e deles morethen são necessários 10 parâmetros, quero todos com algum valor e não querem aceitar valores nulos para que, há alguma coisa que eu posso declarar no defination procedimento em si, que pode restringir o parâmetro de entrada nula ou vou ter que verificar para cada valor e aumentar a exceção se o valor necessário é nulo?

Foi útil?

Solução

Em PL / SQL Eu não sei de uma maneira de contornar a verificação de cada um.

Se você está chamando o procedimento armazenado de uma biblioteca externa, que a biblioteca pode ter essa funcionalidade. Esta é, provavelmente, não é provável, porque são necessários parâmetros de entrada frequentemente nulos.

Você poderia fazer um ajudante PL / SQL procedimento que, dado um valor, vai levantar uma exceção se ele é nulo para economizar em código redundante. Você poderia, então, escrever um pedaço de perl / python / Groovy que sorver a sua declaração de procedimento e manivela essas chamadas para o seu procedimento de verificação de null.

Outras dicas

Eu sei que isto é uma questão de idade, mas não há outra opção (descrito aqui ):

SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;

Você pode definir este tipo (e number_not_null, etc), quer no mesmo pacote que os procedimentos armazenados, ou em seu próprio pacote se você quiser usá-los em muitos lugares. Você pode então declarar parâmetros de ser destes tipos.

Se NULL é passado como um argumento, você receberá uma mensagem de erro muito útil:

cannot pass NULL to a NOT NULL constrained formal parameter
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top