PLSQL_Oracle_01 Flashcards

1
Q

Woraus besteht ein PL/SQL Block?

A

PL/SQL ist eine Block-strukturierte Sprache. Ein Block besteht dabei aus drei Sektionen: Deklaration, Ausführung und Ausnahmenbehandlung (Optional).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist ein anomymer Block?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Ein Beispiel für einen anonymen Block?

A

BEGIN

DBMS_OUTPUT.put_line(‘Hello World’);

END;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist SQL*Plus?

A

Ein Kommandozeilen Interface zum Ausführen von SQL Statements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie sollten Variablennamen verwendet werden?

A
  • Lokale Variablen sollten mit einem l_ und globale mit einem g_ beginnen.
  • z.B. l_total_sales
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie kann einer Variablen ein Wert zugewiesen werden?

A

Mit dem Operator := kann ich einer Variablen einen Wert zuweisen.

Es ist auch möglich, mit dem DEFAULT Keyword einen Standardwert zuzuweisen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie wird in PL/SQL ein 0-Längen String behandelt?

A

Als NULL Wert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wofür benötige ich verankerte Deklarationen?

A

Ich kann den Datentyp entsprechend des Datentyps einer Tabellenspalte verknüpfen.

l_customer_name customers.name%TYPE;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was macht SELECT INTO?

A

Dadurch erstelle ich eine Tabelle von einer bestehenden Tablelle, indem ich Spalten kopiere.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie kann ich Konstante verwenden?

A

Durch das Keyword CONSTANT. Dadurch wird der Code verständlicher.

DECLARE

co_payment_term CONSTANT NUMBER := 45;

BEGIN

NULL;

END;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Zwei Tipps für IF Statements?

A
  1. Vermeide klobige IF Anweisungen
  2. 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welche Zwei Typen von CASE Anweisungen gibt es?

A
  • Simple CASE Anweisungen und
  • Suchende CASE Anweisungen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wann sollte ich Simple CASE oder Searched CASE Anweisungen verwenden?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie kann ich bei GOTO die Anweisung identifizieren?

A

Der label_name wird folgendermaßen gekennzeichnet.

<>;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wie kann ich GOTO nicht verwenden?

A

Ich kann damit nicht innerhalb von IF, CASE oder LOOP Anweisungen springen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wofür kann ich NULL Statements (Leeranweisungen) verwenden?

A

Eine NULL-Anweisung macht nichts, außer die Kontrolle zur nächsten Anweisung weiter zu geben.

  1. Verbessert die Lesbarkeit des Codes
  2. Bietet eine Landefläche für GOTO Anweisungen
  3. Kann als Platzhalter für noch nicht geschriebene Unterprogramme verwendet werden
17
Q

Wie ist die Syntax für FOR LOOP Anweisungen?

A

FOR index IN lower_bound .. upper_bound
LOOP
statements;
END LOOP;

Der Index ist eine implizite Variable. Es ist lokal für die FOR LOOP Anweisung. Das bedeutet, sie kann nicht außerhalb des Loops referenziert werden.

18
Q

Wie kann ich eine Step-Anweisung innerhalb einer FOR LOOP Anweisung festlegen?

Zur Erinnerung: ich kann das inkrement im index-Zähler nicht verändern.

A

Ich kann aber eine zusätzliche Variable verwenden.

DECLARE
l_step PLS_INTEGER := 2;
BEGIN
FOR l_counter IN 1..5 LOOP
dbms_output.put_line (l_counter*l_step);
END LOOP;
END;

19
Q

Wofür benötige ich die CONTINUE Anweisung?

A

Die Anweisung wird normalerweise innerhalb einer IF THEN Anweisung verwendet, um die aktuelle Loop Iteration zu stoppen, basierend auf einer speziellen Bedingung.

Es geht dann direkt zum nächsten Loop.

20
Q

Was ist ein Record?

A

Eine Datenstruktur, die aus mehreren Feldern besteht, z.B. der Record Kunde, der aus Vorname, Nachname und Telefonnummer besteht.

21
Q

Welche Arten von Records kennt PL/SQL?

A
  1. table-based
  2. cursor-based
  3. programmer-defined
22
Q

Wofür benötigt man Exceptions?

A

Man kann zwar nicht alle potenzielle Ausnahmen antizipieren, aber man kann ein paar Standard-Ausnahmen definieren, damit das Programm weiterläuft.