PLSQL_Oracle_01 Flashcards
Woraus besteht ein PL/SQL Block?
PL/SQL ist eine Block-strukturierte Sprache. Ein Block besteht dabei aus drei Sektionen: Deklaration, Ausführung und Ausnahmenbehandlung (Optional).
Was ist ein anomymer Block?
Funktionen oder Prozeduren sind Beispiele eines PL/SQL Blocks mit Namen, die auf dem Oracle Datenbank Server gespeichert werden.
Ein anonymer wird nicht gespeichert und nur einmal verwendet, z.B. zum Testen.
Ein Beispiel für einen anonymen Block?
BEGIN
DBMS_OUTPUT.put_line(‘Hello World’);
END;
Was ist SQL*Plus?
Ein Kommandozeilen Interface zum Ausführen von SQL Statements.
Wie sollten Variablennamen verwendet werden?
- Lokale Variablen sollten mit einem l_ und globale mit einem g_ beginnen.
- z.B. l_total_sales
Wie kann einer Variablen ein Wert zugewiesen werden?
Mit dem Operator := kann ich einer Variablen einen Wert zuweisen.
Es ist auch möglich, mit dem DEFAULT Keyword einen Standardwert zuzuweisen.
Wie wird in PL/SQL ein 0-Längen String behandelt?
Als NULL Wert.
Wofür benötige ich verankerte Deklarationen?
Ich kann den Datentyp entsprechend des Datentyps einer Tabellenspalte verknüpfen.
l_customer_name customers.name%TYPE;
Was macht SELECT INTO?
Dadurch erstelle ich eine Tabelle von einer bestehenden Tablelle, indem ich Spalten kopiere.
Wie kann ich Konstante verwenden?
Durch das Keyword CONSTANT. Dadurch wird der Code verständlicher.
DECLARE
co_payment_term CONSTANT NUMBER := 45;
BEGIN
NULL;
END;
Zwei Tipps für IF Statements?
- Vermeide klobige IF Anweisungen
- Vermdeide die Evaluation von Boolean Variablen
Zu 1:
b_profitable := false;
IF n_sales > n_cost THEN b_profitable := true;
Das sollte besser so werden: b_provitable := n_sales > n_costs;
Zu 2:
IF p_profitable = TRUE THEN …
Sollte besser werden
IF p_profitable THEN
Welche Zwei Typen von CASE Anweisungen gibt es?
- Simple CASE Anweisungen und
- Suchende CASE Anweisungen
Wann sollte ich Simple CASE oder Searched CASE Anweisungen verwenden?
Wenn ich eine Sequenz von Anweisungen basierend auf den Ergebnissen von mehreren Boolean Ausdrücken machen möchte –> Searched CASE
Wenn ich eine Sequenz von Anweisungen basierend auf dem Ergebnis eines einfachen Ausdrucks –> Simple CASE
Wie kann ich bei GOTO die Anweisung identifizieren?
Der label_name wird folgendermaßen gekennzeichnet.
<>;
Wie kann ich GOTO nicht verwenden?
Ich kann damit nicht innerhalb von IF, CASE oder LOOP Anweisungen springen.