Pular para o conteúdo

Calling Subroutines – Notações: Posicional, Nomeada e Mista

Calling Subroutines – Notations

Antes do Oracle 11g, era possível usar a notação posicional ou a notação nomeada, isso dentro de blocos PL/SQL. A notação nomeada não era possível utilizar em chamadas SQL, apenas posicional. Mas, a partir do Oracle 11g, podemos utilizar ambas as notações e foi introduzida mais uma notação, a mixa, que utiliza ambas ao mesmo tempo.

A notação posicional é a mais simples e a mais utilizada, em que é informado um valor para cada variável na lista de parâmetros. Esses valores devem ser em ordem sequencial e do mesmo datatype. Já a notação nomeada, utilizamos o nome do parâmetro forma juntamente com o operador => com o valor a ser utilizado. A notação mixa utiliza ambas as notações, nomeada e posicional ao mesmo tempo, mas para isto funcionar corretamente sem problemas, devemos declarar os parâmetros obrigatórios primeiro e somente depois os opcionais.

Para visualizar melhor as notações existentes, vamos criar uma função que recebe alguns parâmetros:

CREATE OR REPLACE FUNCTION notacao(
a NUMBER,
b NUMBER,
c NUMBER,
d NUMBER := 0,
e NUMBER := 0) RETURN NUMBER IS

BEGIN
RETURN a+b+c+d+e;

END notacao;

Os parâmetros “d” e “e” são opcionais e recebem valor 0 caso não sejam passados na chamada a função. Vejamos alguns exemplos agora

Calling Subroutines

Na linha 2 e 3 foi feita uma chamada utilizando a notação posicional, informando apenas os 3 primeiros parâmetros na linha 2, que são obrigatórios. Já na linha 3 foi informando o valor 4 para o quarto parâmetro, e como não foi passado o valor do último parâmetro, o valor assumido foi o default, que no caso foi 0.

Na linha 4 foi utilizada a notação nomeada, onde utilizamos o nome do parâmetro formal, que são as letras, em conjunto com o operador “=>” e o valor. Veja também que foi alterada a ordem dos parâmetros, algo possível na notação nomeada e que não pode ser feito na notação posicional.

Na última linha, a 5, foi utilizada a notação mixa, onde os primeiros parâmetros sempre serão posicionais e depois poderemos utilizar a notação nomeada. Não se pode usar a notação posicional depois que foi utilizada a nomeada, isso irá lançar uma exceção.

Vejam também que em todos os exemplos, não foi utilizado todos os parâmetros, já que os últimos dois são opcionais. Isso é conhecido como notação excludente, ou exclusionary notation.

Referência

Abraço

Tércio Costa

Tércio Costa

Tércio Costa, formado em Ciências da Computação em 2013 pela UFPB. Tenho experiência em Servidores Windows Server, Linux e banco de dados Oracle desde 2008 juntamente com os seus serviços. Desde então venho aperfeiçoando os meus conhecimentos em produtos Oracle e Sistemas Operacionais. Tenho experiência também em bancos SQL Server, MySQL e PosrgreSQL além da linguagem de programação Java, onde desenvolvi projetos freelance utilizando banco de dados Oracle XE e Java SE.

Mantenho o Blog https://oraclepress.wordpress.com reconhecido pela Oracle Technology Network OTN, onde também sou articulista e sou certificado Oracle Database SQL Certified Expert!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Marcações:
plugins premium WordPress