Pregunta

Que hace : representar en una consulta?

INSERT INTO MyTable (ID) VALUES (:myId)

¿Cómo obtiene el valor deseado?

Editar: ¿Y cómo se llama ese cartel?Quería buscar en google, pero ¿cómo se llama? :?

¿Fue útil?

Solución

Eso se llama un bind variables en Oracle.

  

¿cuál es el nombre para ":"?

Colón.

Otros consejos

¿Qué significa ":" en una consulta?

A variable de enlace.Las variables de vinculación permiten reutilizar muchas veces una única instrucción SQL (ya sea una consulta o DML), lo que ayuda a la seguridad (al no permitir ataques de inyección de SQL) y al rendimiento (al reducir la cantidad de análisis requerido).

¿Cómo obtiene el valor deseado?

Antes de que Oracle ejecute una consulta (o DML), su programa creará un cursor.Su programa emite el SQL que se analizará para ese cursor, luego debe vincular valores para cada variable de vinculación a la que hace referencia el SQL.La forma de hacerlo depende del idioma.

¿Cómo se llama ese cartel?

Dos puntos.

Esta es una etiqueta para un parámetro de consulta con nombre, y no forma parte de la sintaxis real de la consulta. La etiqueta se reemplaza con algún valor especificado en el código que realiza la consulta antes de que se ejecuta realmente.

: colon se utiliza en HQL de Hibernate Query Language para significar que hay un parámetro en cuestión.

Así que lo que esto significa es: La sintaxis SQL:

SELECT * FROM EMPLOYEE WHERE EMP_ID = empID

es el mismo que HQL sintaxis:

SELECT * FROM EMPLOYEE WHERE EMP_ID = :empID

empID siendo variable local para los parámetros ...

Espero que esto ayude.

Es un llamado parámetro .

En C #, el prefijo con el parámetro @ (ver aquí ).

Considere las siguientes afirmaciones

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 se ejecuta un comunicado, Oracle comprobará para apariciones previas de la misma consulta. Si encuentra la misma consulta, se hace uso del mismo plan ejecución . Si no es así, tiene que encontrar las diversas rutas de ejecución, subir con el plan de ejecución óptima y ejecutarlo.

A diferencia humana es lo suficientemente inteligente como para no darse cuenta de que sólo el ID ha cambiado (como en el ejemplo anterior). Por lo tanto, ir a través de todas las luchas y lo ejecuta.

Sin embargo, hay una forma de saber que su Oracle una declaración similar y que se puede utilizar el mismo plan de ejecución - BIND VARIABLE . Por favor, encontrar el siguiente ejemplo:

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;

El uso de variables se unen ayuda a mejorar el rendimiento diez veces. PL / SQL hace uso de las variables se unen por sí mismo (no es necesario que indique explícitamente que)

que también es la sintaxis de parámetros para una consulta Delphi

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top