Co je Dynamické SQL?

Dynamic SQL je programovací metodika pro generování a spouštění příkazů za běhu. Používá se hlavně k zápisu univerzálních a flexibilních programů, kde budou příkazy SQL vytvořeny a provedeny za běhu na základě požadavku.,

V tomto kurzu, budete-

  • Způsoby, jak psát dynamické SQL
  • NDS (Nativní Dynamické SQL) – Provádět Okamžité
  • DBMS_SQL pro Dynamické SQL

Způsoby, jak psát dynamické SQL

PL/SQL poskytuje dva způsoby, jak psát dynamické SQL

  1. NDS – Nativní Dynamické SQL
  2. DBMS_SQL

NDS (Nativní Dynamické SQL) – Provádět Okamžité

Nativní Dynamické SQL je jednodušší způsob, jak psát dynamické SQL. Používá příkaz „EXECUTE IMMEDIATE“ k vytvoření a spuštění SQL za běhu., Chcete-li však použít tento způsob, musí být datový typ a počet proměnných, které mají být použity v době běhu, známy dříve. To také dává lepší výkon a menší složitost ve srovnání s DBMS_SQL.

Syntax

EXECUTE IMMEDIATE(<SQL>)
  • výše uvedená syntaxe ukazuje provést okamžitý příkaz.
  • klauzule do je volitelná a používá se pouze v případě, že dynamický SQL obsahuje příkaz select, který načte hodnoty. Typ proměnné by měl odpovídat typu proměnné příkazu select., použití klauzule
  • je volitelné a používá se pouze v případě, že dynamický SQL obsahuje libovolnou proměnnou bind.

Příklad 1: V tomto příkladu budeme načítat data z tabulky emp pro emp_no ‚1001‘ pomocí NDS prohlášení.

Výstupní

Employee Name : XXX Employee Number: 1001 Salary: 15000 Manager ED: 1000

Kód Vysvětlení:

DBMS_SQL pro Dynamické SQL

PL/SQL poskytnout DBMS_SQL balíček, který umožňuje pracovat s dynamickým SQL. Proces vytváření a provádění dynamického SQL obsahuje následující proces.,

  • otevřít kurzor: dynamický SQL se provede stejným způsobem jako kurzor. Abychom mohli provést příkaz SQL, musíme otevřít kurzor.
  • analyzovat SQL: dalším krokem je analyzovat dynamický SQL. Tento proces pouze zkontroluje syntaxi a ponechá dotaz připravený k provedení.
  • BIND VARIABLE Values: dalším krokem je přiřazení hodnot pro bind proměnné, pokud existují.
  • definovat sloupec: dalším krokem je definovat sloupec pomocí jejich relativních pozic v příkazu select.
  • EXECUTE: dalším krokem je provedení analyzovaného dotazu.,
  • načíst hodnoty: dalším krokem je načtení provedených hodnot.
  • zavřít kurzor: jakmile jsou výsledky načteny, kurzor by měl být uzavřen.

Příklad 1: V tomto příkladu budeme načítat data z tabulky emp pro emp_no ‚1001‘ pomocí DBMS_SQL prohlášení.

Výstupní

Employee Name:XXX Employee Number:1001 Salary:15000 Manager ID:1000

Kód Vysvětlení:

  • řádek Kódu 1-9: deklarace Proměnných.,
  • kódový řádek 10: rámování příkazu SQL.
  • kódový řádek 11: otevření kurzoru pomocí DBMS_SQL.OPEN_CURSOR. Vrátí id kurzoru, které se otevře.
  • kódový řádek 12: po otevření kurzoru se analyzuje SQL.
  • kódový řádek 13: Bind proměnná ‚ 1001 ‚přiřazuje k id kurzoru místo‘: empno‘.
  • kódový řádek 14-17: definování názvu sloupce na základě jejich relativní polohy v příkazu SQL. V našem případě je relativní pozice (1) emp_name, (2) emp_no (3) plat (4) manažer. Takže na základě této pozice definujeme cílovou proměnnou.,
  • kódový řádek 18: provedení dotazu pomocí DBMS_SQL.SPUSTIT. Vrací počet zpracovaných záznamů.
  • kódový řádek 19-33: načítání záznamů pomocí smyčky a zobrazení stejné.
  • kódový řádek 20: DBMS_SQL.FETCH_ROWS načte jeden záznam ze zpracovaných řádků. To může být voláno opakovaně načíst všechny řádky. Pokud nemůže načíst řádky, vrátí se 0, čímž opustí smyčku.

shrnutí

v této části jsme diskutovali o dynamickém SQL a způsobech provádění dynamického SQL., Viděli jsme také různé kroky při provádění dynamického SQL oběma způsoby. Viděli jsme také příklady, ve kterých je stejný scénář zpracován jak v NDS, tak v DBMS_SQL způsobech provedení za běhu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *