Pergunta

O que : representa em uma consulta?

INSERT INTO MyTable (ID) VALUES (:myId)

Como ele busca o valor desejado?

Editar: Além disso, como é chamado esse sinal?Queria pesquisar no google, mas qual é o nome :?

Foi útil?

Solução

Isso é chamado de Variável de ligação em oracle.

Qual é o nome para ":"?

Cólon.

Outras dicas

O que significa ":" em uma consulta?

A variável de ligação.As variáveis ​​de ligação permitem que uma única instrução SQL (seja uma consulta ou DML) seja reutilizada muitas vezes, o que ajuda na segurança (ao proibir ataques de injeção de SQL) e no desempenho (ao reduzir a quantidade de análise necessária).

Como ele busca o valor desejado?

Antes de uma consulta (ou DML) ser executada pelo Oracle, seu programa criará um cursor.Seu programa emite o SQL para ser analisado para esse cursor e, em seguida, deve vincular valores para cada variável de ligação referida pelo SQL.Como isso é feito depende do idioma.

Como é chamado esse sinal?

Dois pontos.

Esta é uma tag para um parâmetro de consulta nomeado e não faz parte da sintaxe real da consulta. A tag é substituída por algum valor especificado no código que faz a consulta antes de ser executada.

Cólon : é usado na linguagem de consulta HQL Hibernate para significar que há um parâmetro envolvido.

Então, o que isso significa é: Sintaxe SQL:

SELECT * FROM EMPLOYEE WHERE EMP_ID = empID

é o mesmo que a sintaxe HQL:

SELECT * FROM EMPLOYEE WHERE EMP_ID = :empID

empID sendo variável local para parâmetros ...

Espero que isto ajude.

É um parâmetro nomeado.

Em C#, você prefixo o parâmetro com @ (veja aqui).

Considere as seguintes afirmações

select name from T_emp where id=1;
select name from T_emp where id=2;
select name from T_emp where id=3;

Cada vez que uma instrução é executada, o Oracle verifica ocorrências anteriores da mesma consulta.Se encontrar a mesma consulta, ele fará uso da mesma plano de execução.Caso contrário, é necessário encontrar os vários caminhos de execução, elaborar o plano de execução ideal e executá-lo.

Ao contrário dos humanos, não é inteligente o suficiente para perceber que apenas o id mudou (conforme exemplo acima).Daí ele passa por todas as lutas e executa.

Mas há uma maneira de dizer ao Oracle que é uma declaração semelhante e que pode usar o mesmo plano de execução - VARIÁVEL DE VINCULAÇÃO.Encontre o exemplo abaixo:

declare
  v_id number;
  v_name varchar2(30);
  type c is ref cursor;
  c1 c;
begin
  for i in 1..100
   loop
    open c1 for 'select * from T_emp where id = :x' using i;
    fetch c1 into v_name;
    dbms_output.put_line('name is ' || v_name);
   end loop;
END;

Usar variáveis ​​Bind ajuda a melhorar o desempenho dez vezes.PL/SQL usa as variáveis ​​de ligação por conta própria (você não precisa informar isso explicitamente)

Essa também é a sintaxe do parâmetro para uma consulta Delphi

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top