PLS-00306 Erro: Como encontrar o argumento errado?

11

PLS-00306: número ou tipos incorretos de argumentos na chamada para 'string'

Causa: Esse erro ocorre quando a chamada do subprograma nomeado não pode ser correspondida a nenhuma declaração desse nome. O nome do subprograma pode estar com erros de ortografia, um parâmetro pode ter o tipo de dados errado, a declaração pode estar com defeito ou a declaração pode ser colocada incorretamente na estrutura do bloco. Por exemplo, esse erro ocorre se a função raiz quadrada interna SQRT for chamada com um nome incorreto ou com um parâmetro do tipo de dados errado.

Ação: Verifique a ortografia e a declaração do nome do subprograma. Confirme também que sua chamada está correta, seus parâmetros são do tipo de dados correto e, se não for uma função interna, que sua declaração seja colocada corretamente na estrutura do bloco.

Como identifico rapidamente o argumento errado?

Eu tenho um procedimento armazenado com dezenas de parâmetros. Existe uma maneira fácil de verificar as diferenças entre o procedimento usado e o definido? Não quero verificar linha por linha ..

Stephan Schielke
fonte

Respostas:

11

Não, não há realmente atalhos aqui. Examine as coisas na seguinte ordem:

  1. Verifique o nome do procedimento.
  2. Verifique o número de parâmetros.
  3. Verifique os tipos dos parâmetros.
  4. Verifique os nomes dos parâmetros.
Leigh Riffel
fonte
4
Verifique também os nomes dos parâmetros se os chamar pelo nome. Isso me pegou de surpresa.
swref 30/01
verificar o nome dos parâmetros é a chave para mim, obrigado.
Arpit Aggarwal
Ele poderia ser o tipo de objeto
Arthur