Middle
Rozdiel medzi dynamickým a statickým SQL, výhody a nevýhody dynamického
sobes.tech AI
Odpoveď od AI
Statické SQL — sú SQL dopyty, ktoré sú úplne definované v štádiu kompilácie programu. Počas behu sa nemenia, parametre sa odovzdávajú cez väzby.
Dynamické SQL — sú SQL dopyty, ktoré sa formujú a vykonávajú počas behu programu, napríklad pomocou reťazcových konkatenácií alebo špeciálnych API (napríklad EXECUTE IMMEDIATE).
Výhody dynamického SQL:
- Flexibilita: je možné tvoriť dopyty s rôznou štruktúrou v závislosti od podmienok.
- Umožňuje vykonávať dopyty, ktoré nie je možné predvídať vopred.
Nevýhody dynamického SQL:
- Riziko SQL injekcie, ak parametre nie sú správne používané.
- Strata výhod optimalizácie, pretože plán dopytu nemusí byť cache-ovaný.
- Ťažšie na ladenie a údržbu.
Statické SQL je bezpečnejšie a efektívnejšie, ale menej flexibilné.
Príklad dynamického SQL v PL/SQL:
DECLARE
v_sql VARCHAR2(1000);
v_table_name VARCHAR2(30) := 'EMPLOYEES';
BEGIN
v_sql := 'SELECT COUNT(*) FROM ' || v_table_name;
EXECUTE IMMEDIATE v_sql INTO v_count;
DBMS_OUTPUT.PUT_LINE('Počet: ' || v_count);
END;