SELECT – ORACLE & OPERATOR

Estou dando uma lida sobre este assunto de variáveis…

Aquelas que vc usa o & na frente do nome para carregar. E como de praxe eu estava pensando errado sobre esse ilustre operador.

Quando usamos a seguinte query:

SELECT * FROM USER_TABLES WHERE TABLE_NAME LIKE ‘%&NOME%’

o ORACLE pedirá o valor da variavel NOME

agora se fizermos:

SELECT  u.*,’&NOME’ FROM USER_TABLES u WHERE u.TABLE_NAME LIKE ‘%&NOME%’

ele solicitará 2 vezes!

agora vc pergunta, pô Dartanghan e se eu tiver 234987623892346 vezes esse troço no meu código? vou ter que digitar sempre?

e a maravilhosa resposta é NÃO!

os caras da Oracle pensaram ( 🙂 ) e criaram o && que significa que o valor que vc utilizar na variavel com && será usado para todas as variaveis com o mesmo nome definido por &. Confuso?

Vou tentar demonstrar.

Se fizermos a query:

SELECT  u.*,’&&NOME’ FROM USER_TABLES u WHERE u.TABLE_NAME LIKE ‘%&NOME%’ AND LENGTH( u.TABLE_NAME ) > LENGTH ( ‘&NOME’ )

O Oracle vai pedir apenas uma vez o valor do &NOME e aplicará a todos os &NOME s da sua query

Agora a pegadinha!

Algumas pessoas ( eu ) achavam que o &&VARIAVEL significava &VALOR_VARIAVEL, mas na verdade:

Se &VARIAVEL = ‘OI’ ,  &&VARIAVEL != &OI.

Bem … agora vamos voltar aos estudos… qualquer coisa posto aqui. 🙂

Deixe uma resposta