Domanda

Che cosa fa il basamento : per in una query?

INSERT INTO MyTable (ID) VALUES (:myId)

Come recuperare il valore desiderato?

Modifica Anche ciò che si chiama quel segno? Volevo cercare su google, ma qual è il nome per :?

È stato utile?

Soluzione

Che chiama legano variabile in Oracle.

  

qual è il nome per ":"?

Colon.

Altri suggerimenti

Che cosa significa ":" stare in piedi per in una query

Un legano variabile. Bind variabili permettono una singola istruzione SQL (se una query o DML) per essere riutilizzati più volte, che aiuta la sicurezza (vietando gli attacchi SQL injection) e le prestazioni (riducendo la quantità di analizzare richiesto).

Come recuperare il valore desiderato?

Prima di una query (o DML) viene eseguito da Oracle, il programma creerà un cursore. I vostri problemi del programma SQL per essere analizzati per quella del cursore, allora deve associare i valori per ogni variabile si legano a cui si riferisce l'SQL. Come questo viene fatto dipende dalla lingua.

Che cosa è quel segno chiama?

Un colon.

Questo è un tag per un parametro di query di nome, e non fa parte della sintassi effettiva della query. Il tag viene sostituito con un certo valore specificato nel codice che rende la query prima che venga effettivamente eseguito.

Colon : viene utilizzato in HQL Hibernate Query Language per indicare che c'è un parametro in questione.

Quindi, ciò significa: SQL sintassi:

SELECT * FROM EMPLOYEE WHERE EMP_ID = empID

è lo stesso come HQL sintassi:

SELECT * FROM EMPLOYEE WHERE EMP_ID = :empID

empID essendo variabile locale per i parametri ...

Spero che questo aiuti.

Si tratta di una chiamato parametro .

In C #, è prefisso il parametro con @ (vedi qui ).

Si considerino le seguenti dichiarazioni

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

Ogni volta che viene eseguita una dichiarazione, controlli Oracle per precedenti occorrenze della stessa query. Se trova la stessa query, si avvale dello stesso piano esecuzione . In caso contrario, si deve trovare i vari percorsi di esecuzione, elaborare il piano di esecuzione ottimale ed eseguirlo.

A differenza umana è abbastanza intelligente non rendersi conto che solo l'ID è cambiato (come da esempio sopra). Quindi passare attraverso tutte le lotte e l'esegue.

Ma c'è un modo per dire che il suo Oracle una dichiarazione simile e che si può utilizzare lo stesso piano di esecuzione - BIND VARIABILE . Si prega di trovare il seguente esempio:

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;

Utilizzando variabili bind aiuta a migliorare il dieci volte le prestazioni. PL / SQL non utilizzare le variabili di bind da solo (non è necessario in modo esplicito gli dite)

che è anche la sintassi parametro per un Delphi interrogazione

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top