Frage

Was bedeutet : steht in einer Abfrage?

INSERT INTO MyTable (ID) VALUES (:myId)

Wie holen sie den gewünschten Wert?

Edit: Auch was ist das Zeichen genannt? Ich wollte auf Google suchen, aber was ist der Name für :?

War es hilfreich?

Lösung

ist das so genannte Bind-Variable in Oracle.

  

Was ist der Name für ":"

Colon.

Andere Tipps

Was bedeutet ":" steht für in einer Abfrage

Bind-Variable . Bind Variablen ermöglichen eine einzelne SQL-Anweisung (ob eine Abfrage oder DML) wiederverwendet werden viele Male sein, die Sicherheit hilft (durch SQL-Injection-Angriffe disallowing) und Leistung (durch Verringerung der Menge an Parsen erforderlich).

Wie funktioniert es den gewünschten Wert holen?

Vor einer Abfrage (oder DML) von Oracle ausgeführt wird, wird das Programm einen Cursor erstellen. Ihr Programm gibt den SQL-Code für diesen Cursor analysiert werden, dann muss es Werte binden für jede Bindevariable bezeichnet durch die SQL. Wie dies geschieht, hängt von der Sprache.

Was ist das Zeichen genannt?

Ein Doppelpunkt.

Dies ist ein Tag für einen benannte Abfrage-Parameter und ist nicht Teil der eigentlichen Syntax der Abfrage. Der Tag wird mit einem Wert ersetzt in dem Code angegeben, der die Abfrage macht, bevor es tatsächlich ausgeführt wird.

Colon : wird in HQL Hibernate Query Language verwendet, um anzuzeigen, dass es ein beteiligten Parameter.

Also, was das bedeutet ist: SQL-Syntax:

SELECT * FROM EMPLOYEE WHERE EMP_ID = empID

ist gleich wie HQL SYNTAX:

SELECT * FROM EMPLOYEE WHERE EMP_ID = :empID

empID wobei lokale Variable für Parameter ...

Hope, das hilft.

Es ist ein benannten Parameter .

In C # Präfix Sie den Parameter mit @ (siehe hier ).

Beachten Sie die folgenden Aussagen

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

Jedes Mal, wenn eine Anweisung ausgeführt wird, Oracle prüft vorherige Vorkommen derselben Abfrage. Wenn es die gleiche Abfrage findet, macht es die Verwendung des gleichen Ausführungsplan . Wenn nicht, hat es die verschiedenen Ausführungspfade zu finden, kommt mit dem optimalen Ausführungsplan und ausführen.

Im Gegensatz zu menschlichen ist es nicht intelligent genug, um zu erkennen, dass nur die ID (gemäß obigem Beispiel) geändert hat. Daher gehen sie durch alle Kämpfe und führt sie aus.

Aber es gibt eine Möglichkeit, Oracle zu sagen, dass es eine ähnliche Aussage und dass es den gleichen Ausführungsplan verwenden kann - BIND VARIABLE . Hier finden Sie das folgende Beispiel:

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;

Variablen Bind Verwendung hilft, die Leistung verzehnfachen zu verbessern. PL / SQL hat die Bind-Variablen auf eigene verwenden (nicht explizit muss es sagen)

Das ist auch der Parameter Syntax für eine Delphi-Abfrage

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top