Wat is dynamische SQL?

dynamische SQL is een programmeermethodologie voor het genereren en uitvoeren van statements tijdens run-time. Het wordt voornamelijk gebruikt om de algemene en flexibele programma ‘ s te schrijven waar de SQL-statements zullen worden gemaakt en uitgevoerd tijdens run-time op basis van de vereiste.,

In deze tutorial leert u-

  • manieren om dynamische SQL
  • NDS (Native Dynamic sql) te schrijven – uitvoeren onmiddellijke
  • DBMS_SQL voor dynamische SQL

manieren om dynamische SQL

PL/SQL biedt twee manieren om dynamische SQL

  1. NDS te schrijven – native Dynamic SQL
  2. dbms_sql

NDS (native Dynamic SQL) – execute immediate

Native dynamic sql is de gemakkelijkere manier om dynamische SQL te schrijven. Het gebruikt de opdracht’ EXECUTE IMMEDIATE ‘ om de SQL tijdens run-time te maken en uit te voeren., Maar om op deze manier te gebruiken, moeten het datatype en het aantal variabele dat gebruikt moet worden op een runtime vooraf bekend zijn. Het geeft ook betere prestaties en minder complexiteit in vergelijking met DBMS_SQL.

syntaxis

EXECUTE IMMEDIATE(<SQL>)
  • de bovenstaande syntaxis toont direct commando uitvoeren.
  • clausule in is optioneel en wordt alleen gebruikt als de dynamische SQL een SELECT statement bevat dat waarden ophaalt. Het variabele type moet overeenkomen met het variabele type van het SELECT statement.,
  • Clausule gebruiken is optioneel en wordt alleen gebruikt als de dynamische SQL een bind-variabele bevat.

Voorbeeld 1: In dit voorbeeld gaan we de gegevens ophalen uit de emp-tabel voor emp_no ‘1001’ met behulp van NDS-statement.

Output

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

Code verklaring:

DBMSQL voor dynamische SQL

PL/SQL het dbms_sql-pakket dat hiermee kunt u werken met dynamische SQL. Het proces van het maken en uitvoeren van de dynamische SQL bevat het volgende proces.,

  • open CURSOR: de dynamische SQL zal op dezelfde manier worden uitgevoerd als een cursor. Dus om het SQL statement uit te voeren, moeten we de cursor openen.
  • PARSE SQL: de volgende stap is het ontleden van de dynamische SQL. Dit proces controleert gewoon de syntaxis en houdt de query klaar om uit te voeren.
  • BIND variabele waarden: de volgende stap is om de waarden toe te wijzen voor bind variabelen als die er zijn.
  • definieer kolom: de volgende stap is om de kolom te definiëren met behulp van hun relatieve posities in het SELECT statement.
  • uitvoeren: de volgende stap is het uitvoeren van de ontleed query.,
  • waarden ophalen: de volgende stap is de uitgevoerde waarden ophalen.
  • sluit CURSOR: zodra de resultaten zijn opgehaald, moet de cursor worden gesloten.

Voorbeeld 1: In dit voorbeeld gaan we de gegevens ophalen uit de emp-tabel voor emp_no ‘1001’ met behulp van dbms_sql-statement.

Output

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

verklaring code:

  • coderegel 1-9: variabele declaratie.,
  • coderegel 10: Framing van het SQL-statement.
  • coderegel 11: de cursor Openen met DBMS_SQL.OPEN_CURSOR. Het Retourneert de cursor-id die wordt geopend.
  • coderegel 12: nadat de cursor is geopend, wordt de SQL ontleed.
  • Code regel 13: Bind variabele ‘ 1001 ‘wordt toegewezen aan de cursor-id in plaats van’: empno’.
  • coderegel 14-17: definiëren van de kolomnaam op basis van hun relatieve positie in het SQL-statement. In ons geval is de relatieve positie (1) emp_name, (2) emp_no (3) salaris (4) manager. Dus op basis van deze positie definiëren we de doelvariabele.,
  • coderegel 18: uitvoeren van de query met behulp van DBMS_SQL.UITGEVOERD. Het retourneert het aantal verwerkte records.
  • coderegel 19-33: de records ophalen met behulp van een lus en dezelfde tonen.
  • coderegel 20: DBMS_SQL.FETCH_ROWS zal één record ophalen uit de verwerkte rijen. Het kan herhaaldelijk worden opgeroepen om alle rijen op te halen. Als het geen rijen kan ophalen, geeft het 0 terug, waardoor de lus wordt afgesloten.

samenvatting

In deze sectie hebben we gesproken over dynamische SQL en de manieren om dynamische SQL uit te voeren., We hebben ook gezien de verschillende stappen in het uitvoeren van de dynamische SQL in beide manieren. We hebben ook de voorbeelden gezien waarin hetzelfde scenario wordt behandeld in zowel NDS als DBMS_SQL manieren om uitvoering uit te voeren tijdens run-time.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *