Variável de substituição no MySQL

26/11/2015

5

Boa tarde,

Estou começando minha carreira na área de desenvolvimento e estou com algumas dificuldades com o banco de dados (uso MySQL).

Em uma consulta para emissão de um relatório, gostaria de utilizar uma variável de substituição '&', para que seja solicitado um valor ao usuário quando executar a pesquisa.

 select employee_id, last_name, salary, department_id 
from employees 
where employee_id = &employee_num;


Porém no MySQL, o '&' não é aceito para pedir a variável. Alguém sabe me informar qual seria uma forma de o usuário digitar este valor sem ser diretamente no código?

OBS: utilizo o HeidiSQL para manipular os dados.
Responder

Post mais votado

26/11/2015

Gabriel,

Vi que o Marcos não deve ter conhecimento sobre esse assunto.
Resta nós esperarmos por outro para nos ajudar.


Srs muita calma, o colega "Marcos P" possui muitos conhecimentos e constantemente está ajudando em vários posts aqui no fórum, ocorre que as vezes as dúvidas não estão bem descritas, eu mesmo tenho problema em entender certos posts.

Quanto a dúvida do post, já usei essa parametrização com Firebird na ferramenta IBExpert onde usamos como parâmetro ":parametro", quando executo é aberto uma janela para passar o valor.

Mês passado tivemos uma dúvida parecida como essa, mas era com parametrização no phpMyAdmin.

Infelizmente fiz várias pesquisas na época com phpMyAdmin e MySQL Workbench mas nunca achei nada que pudesse servir como parâmetro.
Responder

Mais Posts

Poxa também gostaria de saber como funciona essa função no MySql. Estranho que até no manual da Oracle explica dessa forma.
Responder

26/11/2015

Marcos P

Gabriel,

Não entendi a parte em que você fala : "... para que seja solicitado um valor ao usuário quando executar a pesquisa".

Sua intenção é que o MySql abra um prompt qualquer e você possa digitar o valor da variável conforme sua necessidade. É isso ?

Acho que você está confundido as coisas...

O "&" no mySQL é um operador de comparação bit a bit, que não tem ligação nenhuma com o enunciado do seu post.

Se você deseja trabalhar com variáveis locais no escopo de qualquer objeto programável do mySql ( procedures, triggeres, functions,... ), deve declarar as variáveis necessárias no corpo do objeto. Esse link, descreve como declarar variáveis e utilizá-las.

Em relação ao usuário fornecer valores durante a execução da query, isso não existe em nenhum gerenciador de banco de dados relacional. Valores dinâmicos devem ser repassados externamente ao banco, via aplicação ou outro script sql.
Responder

26/11/2015

Gabriel

Marcos,

Isso mesmo, gostaria que abrisse um prompt para digitar o valor da variável.

Obrigado
Responder

26/11/2015

Marcos P

Isso não existe, nem no mySql, nem em qualquer outro gerenciador de banco de dados...
Responder

26/11/2015

Gabriel

Amarildo (Seus pais são santistas?!)


Engraçado vc dizer isso, por que o exemplo que eu tirei foi justamente de fontes da Oracle, mas não está funcionando


Até mais
Responder
Marcos,

Entendo sua resposta.
Mas acho, que eu e o Gabriel estamos perguntando seja muito diferente do que você respondeu.

Há um manual da Própria Oracle (Banco de Dados Oracle 10g:
Fundamentos de SQL I), que diz o seguinte:

É possível criar "variáveis de substituição" no iSQL Plus ( Gerenciador de Banco de Dados Relacional ), apenas utilizando um E comercial (&) na frente da variável,
exatamente como nosso amigo Gabriel fez "&employee_num".

No iSQL Plus funciona, ele abre uma caixa de texto pedindo para colocar o valor que deseja nessa variável, assim, dando dinamismo para uma busca simples no próprio banco de dados sem a necessidade de um software externo ao banco.

Em suma, acho que o que queremos, é saber se o MySQL através do HeidSQL, possibilita usar variáveis de substituição, se sim, como usa-la.
Responder

26/11/2015

Gabriel

Isso não existe, nem no mySql, nem em qualquer outro gerenciador de banco de dados...


Existe, se não me engano vi no Oracle SQL Developer.

Obrigado
Responder
Gabriel,

Vi que o Marcos não deve ter conhecimento sobre esse assunto.
Resta nós esperarmos por outro para nos ajudar.
Responder

26/11/2015

Marcos P

A pergunta original era sobre mySql...


Estou começando minha carreira na área de desenvolvimento e estou com algumas dificuldades com o banco de dados (uso MySQL).


E, portanto, minha resposta foi sobre o mySql.

Se vocês estão tão adiantados assim nas suas pesquisas e testes em Oracle, ótimo !

Tomará que alguém passe por aqui e os ajude...
Responder

26/11/2015

Gabriel

A pergunta original era sobre mySql...


Estou começando minha carreira na área de desenvolvimento e estou com algumas dificuldades com o banco de dados (uso MySQL).


E, portanto, minha resposta foi sobre o mySql.

Se vocês estão tão adiantados assim nas suas pesquisas e testes em Oracle, ótimo !

Tomará que alguém passe por aqui e os ajude...


Marcos,

Sim a pergunta é sobre MySQL. Eu gostaria de saber se alguém pode me ajudar a usar essa ferramenta do Oracle no HeidiSQL.

Obrigado
Responder
Trabalhei em uma grande empresa e recebi algumas aplicações que tinham essa função, procedures em ORACLE que ao serem chamadas solicitavam a digitação de parâmetros direto na base antes de iniciar a execução da proc que eram atribuídos as variáveis, tambem procuro isso para MYSQL (não sei se é possivel em mysql se existir provavelmente será com uma cunção como a scanner do java) se eu descobrir como faz isso em mysql eu volto aqui para comunicar.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira