Oracle erlaubt die objekt-relationale Datenbank -Management-Programm von der Oracle Corporation, Sie SQL-Anweisungen verwenden, um zu speichern, zu verwalten, Daten abrufen und anzeigen . Abfragen kann der Benutzer mit der Datenbank auf SQL -Befehle ausführen zu kommunizieren. Eine dynamische SQL-Abfrage bietet ein breiteres Spektrum von Fähigkeiten als ein Standard- Abfrage. Sie können dynamische Abfragen , SQL-Befehle während der Laufzeit ausgeführt werden , wie z. B. beim Betrieb mit einem Tisch , dass Sie nicht wissen, den Namen bis dahin . Anleitung
1
öffnen Oracle und klicken Sie auf das Symbol, um die SQL- Werkstatt Werkzeug zu öffnen.
2
in den SQL-Anweisungen schreiben , Objekte und Tabellentypen erstellen. Sie können diese als eine Art Vorlage für andere Tabellen in der Datenbank zu verwenden. Die Macht hinter dynamischen SQL-Anweisungen ist, dass man die Tabelle zu erstellen und abzufragen es während der Laufzeit.
"CREATE TYPE t_students AS OBJECT ( StudentID NUMBER , full_name VARCHAR2 ( 30) )
/
CREATE TABLE AS TYPE t_studentlist von t_student
/"
In den obigen Ausführungen haben Sie eine Datenbank mit dem Namen " t_students StudentID "und" full_name " Werte " , die verwenden werden " eindeutige Kennungen ( ein Weg, um einen einzelnen Datensatz in einer Datenbank zu identifizieren). Die " StudentID " Wert wird eine Variable "nummer" sein, was bedeutet , dass nur Zahlen wird auf die " StudentID "-Feld zu speichern. Die " full_name " Wert kann nur bis zu 30 Schriftzeichen . Schließlich , ein Tisch -Typ ( " t_studentlist " ) wurde in der " t_student " Datenbank erstellt. Ändern Sie diese Werte besser vertreten die Art der Daten, die Sie in Ihrer Oracle-Datenbank .
3
schreiben die SQL-Anweisungen , um die tatsächlichen Tabellen in der Datenbank erstellen. Die Tabelle leiht die Struktur der Typen, die Sie in Schritt 2 erstellt haben , so dass Sie nicht haben , um die Kennungen erneut angeben . Mit dem gleichen Beispiel wird die SQL -Tabellen zu erstellen , um die wie folgt aussehen:
"CREATE TABLE students_new ( StudentID NUMBER , Studenten t__studentlist )
verschachtelte Tabelle Studenten STORE AS student_table ; "
" students_new " Tabelle wird der " Studenten " Tisch und " t_studentlist " mit der " StudentID " Feld verbinden . Jeder Student in der Tabelle wird eine eindeutige Nummer, die der Schüler Informationen verbindet in jeder Tabelle . Auf diese Weise werden Sie nicht haben, sich wiederholende Daten in den Tabellen . Zum Beispiel in einem Studentenwohnheim Datenbank , haben Sie eine Tabelle, die die Schüler Kontaktdaten (Name , Telefonnummer und Postanschrift ) und eine weitere Tabelle , dass der Schüler den aktuellen Zeitplan hält hält . Das einzige Feld, das die gleiche sein wird in beiden Tabellen ist die " StudentID "-Feld , das die Informationen verbindet . Sie können die " StudentID " Feld, um eine Abfrage, die den Namen des Schülers und Telefonnummer zieht aus der Studentenbewegung Kontaktinformationen und des Schülers Zeitplan Informationen aus dem Zeitplan -Tabelle zu schreiben .
4
schreiben SQL-Abfrage Informationen hinzufügen , um Ihre Tabellen . Erklären Sie zwei Variablen , die diese Informationen aus der Tabelle in der dynamischen Abfrage verwendet werden später ziehen .
"INSERT INTO students_new VALUES (
10 ,
t_studentlist (
t_students (1, ' John Doe ' ), Stand
t_students (2, " Jane Smith " ))) ;
DECLARE
majorId NUMBER ;
sname VARCHAR1 (20); "
Zwei Studenten wurden der Tabelle hinzugefügt . John Doe hat einen Studentenausweis von "1" und Jane Smith hat einen Studentenausweis der "2". Alle in der Datenbank von John Doe Informationen werden über eine ID von "1".
5
Führen Sie die Abfrage . Dieser Teil fügt die dynamische SQL . Eine der Tabellen Namen nicht an der Zeit, die Sie codieren die Abfrage bekannt , aber es wird sich während der Laufzeit verfügbar . Erstellen Sie einen temporären Platzhalter statt .
"BEGIN
EXECUTE IMMEDIATE 'SELECT s.studentId , s.fullname
FROM students_new s, TABLE ( s.students ) s < br >
WHERE s.studentId = 1 '
INTO majorId , sname ;
END;
/"
In der dynamischen Abfrage , Sie nehmen Informationen aus der " students_new " Tisch und setzen es in die " majorId " und " sname " Felder einer Tabelle , die nicht zu diesem Zeitpunkt ( ( s.students ) s ) bekannt sind. Sie fragte die Datenbank für Informationen über einen Studenten mit der ID "1". Mit dem Beispiel ist John Doe der Student aus der Schüler -Tabelle ausgewählt und in die unbekannte Tabelle .
6
Taste " F9 "-Taste auf Ihrer Tastatur, um die Abfrage auszuführen und zu testen.