So verwenden Modul Sprache mit SQL

Modul Sprache

stellt eine relativ einfache Methode, SQL mit einer prozeduralen Programmiersprache für die Verwendung. Mit Modul Sprache, setzen Sie explizit die alle SQL-Anweisungen in einem separaten SQL-Modul.

Eine SQL Modul ist einfach eine Liste von SQL-Anweisungen. Jeder SQL-Anweisung in einem SQL enthalten Verfahren und wird durch eine Spezifikation des Verfahrens der Name und die Anzahl und Arten von Parametern voraus.

Jede SQL-Prozedur enthält nur eine SQL-Anweisung. Im Host-Programm, rufen Sie explizit eine SQL-Prozedur an, was auch immer Punkt im Host-Programm wollen Sie die SQL-Anweisung in dieser Prozedur auszuführen. Sie rufen die SQL-Prozedur, als ob es sich um ein Unterprogramm in der Host-Sprache.

So können Sie eine SQL-Modul und die zugehörigen Host-Programm explizit Hand-Code das Ergebnis der SQL-Präprozessor für Embedded-Syntax verwenden.

Embedded SQL ist viel häufiger als Modul Sprache. Die meisten Hersteller bieten irgendeine Form von Modulsprache, aber nur wenige betonen sie in ihrer Dokumentation. Modul Sprache hat mehrere Vorteile:

  • SQL-Programmierer müssen keine Experten in der Verfahrenssprache sein. Da der SQL vollständig von der prozeduralen Sprache getrennt ist, können Sie die besten SQL-Programmierer zu schreiben SQL-Module mieten, auch wenn sie keine Erfahrung mit prozeduralen Sprache haben. In der Tat können Sie sogar verschieben, welche Verfahrenssprache zu verwenden, bis nach dem SQL-Module geschrieben und auf Fehler zu entscheiden.

  • Sie können die besten Programmierer einzustellen, die in Ihrer prozeduralen Sprache arbeiten, auch wenn sie nichts über SQL wissen. Es liegt nahe, dass, wenn Ihr SQL-Experten nicht prozeduralen Sprachexperten sein müssen, sicherlich die Verfahrenssprache Experten nicht selbst über Lern ​​SQL kümmern.

  • Kein SQL wird mit dem prozeduralen Code gemischt, so dass Ihre Verfahrenssprachen-Debugger funktioniert. Dies kann Ihnen erhebliche Entwicklungszeit sparen.

Wieder einmal, was kann betrachtet werden als Vorteil aus einer Perspektive ein Nachteil von einem anderen sein kann. Da die SQL-Module aus dem prozeduralen Code getrennt sind, nach dem Fluss der Logik ist nicht so einfach, wie es in Embedded SQL ist, wenn Sie versuchen, zu verstehen, wie das Programm funktioniert.

Modul Erklärungen

Die Syntax für die Erklärungen in einem Modul ist wie folgt:

MODUL [Modulname] [Bezeichnungen sind Zeichensatzname] SPRACHE PLI [SCHEMA schema-name] [GENEHMIGUNG authorization-id][temporary-table-declarations...][cursor-declarations...][dynamic-cursor-declarations...]procedures...

Die eckigen Klammern zeigen an, dass der Modulname ist optional. Benennen ist es trotzdem eine gute Idee, wenn man die Dinge aus immer zu unübersichtlich werden soll.

Die Wahl NAMEN SIND Klausel gibt einen Zeichensatz. Wenn Sie beinhalten nicht ein NAMEN SIND Klausel, die Standardsatz von SQL Zeichen für Ihre Implementierung verwendet. Das SPRACHE Klausel teilt dem Modul, die Sprache wird es aus aufgerufen werden. Der Compiler weiß, was die Berufung Sprache ist, weil es die SQL-Anweisungen an das rufende Programm erscheinen zu lassen, als ob sie sind Unterprogramme in diesem Programm die Sprache.

Obwohl die SCHEMA Klausel und die GENEHMIGUNG Klausel sind beide optional, mindestens einer von ihnen angeben müssen. Oder Sie können beide angeben. Das SCHEMA Klausel gibt das Standardschema und die GENEHMIGUNG Klausel gibt die Berechtigungskennung. Das Berechtigungskennung die Privilegien fest, die Sie haben.

Wenn Sie nicht über eine Berechtigungs-ID angeben, verwendet das DBMS die Berechtigungs-ID mit Ihrer Sitzung verknüpft ist, die Privilegien, um zu bestimmen, dass Ihr Modul erlaubt ist. Wenn Sie benötigt nicht die Berechtigungen verfügen, um die Operation durchführen Prozedur fordert, Ihr Verfahren wird nicht ausgeführt.

Wenn Ihre Prozedur temporäre Tabellen erfordert, erklären sie mit der temporären Tabellen Erklärung Klausel. Deklarieren Cursor und dynamische Cursor, bevor Sie Prozeduren deklarieren, die sie verwenden. einen Cursor deklarieren, nachdem ein Vorgang ist so lange zulässig, beginnt die Ausführung wie das Verfahren nicht den Cursor nicht verwendet. Deklarieren Cursor durch spätere Verfahren verwendet werden, können sinnvoll.

Modulverfahren

Die Funktionsteile des Moduls sind die Verfahren. Eine SQL-Modul Sprache Prozedur hat einen Namen, Parameter-Deklarationen und ausführbaren SQL-Anweisungen. Die Verfahrenssprache Programm ruft die Prozedur durch ihren Namen und übergibt die Werte, um es durch die angegebenen Parameter. Verfahren Syntax sieht wie folgt aus:

VERFAHREN Prozedurname (Parameter-Deklaration [, Parameter-Deklaration] ... SQL-Anweisung - [SQL-Anweisungen] -

Die Parameterdeklaration sollte in folgender Form:

Parametername Datentyp

oder

SQLSTATE

Die Parameter, die Sie erklären können Eingabeparameter, Ausgabeparameter oder beides sein. SQLSTATE ist ein Statusparameter, durch den Fehler gemeldet werden.

Menü