In Oracle gibt es die replace Funktion um Teile eines Strings durch einen anderen Teil zu ersetzen. Hierbei kann ein Zeichen oder eine Zeichenkette durch ein anderes Zeichen oder eine andere Zeichenkette ersetzt werden. Alternativ kann die replace Funktion auch dazu genutzt werden bestimmte Zeichen aus einem String zu entfernen.

Syntax der replace Funktion:

replace(mainString, replaceString, [replacementString])

mainString – String in dem Teile ausgetauscht werden sollen
replaceString – String welcher in mainString ersetzt werden soll. Dabei ist Groß- und Kleinschreibung zu beachten
replacementString – Wird replaceString in mainString gefunden, wird dieses durch den replacementString ausgetauscht. Wird dieser Parameter nicht angegeben (Parameter ist optional), so werden alle Vorkommen von replaceString aus dem mainString entfernt. Dies entspricht dann einem leeren replacementString von “.

weiterlesen von ‘Oracle – Replace Funktion’ »

 

Wie andere Sprache auch verfügt Oracle in PL/SQL auch über For-Schleifen mit denen jegliche Iterationen durchgeführt werden. Sehr oft werden diese in Verbindung mit Cursor genutzt, um die Ergebnisse davon einzeln zu durchlaufen.

declare
begin
  for i in 1 .. 10
  loop
    dbms_output.put_line(i);
  end loop;
end;

Hierbei muss die interne Zählvariable i nicht im declare-Block angegeben werden.

weiterlesen von ‘Oracle – PL/SQL For Schleife’ »

 

Unter Oracle kann mit der Funktion substr ein Teil aus einem größeren Wort oder Text ausgeschnitten werden.

Syntax: substr( string, start_position, [ length ] )

weiterlesen von ‘Oracle – substr Funktion’ »

 

Im PL/SQL werden Cursor genutzt um Daten aus Datenbanktabellen abzufragen.
Hierbei gibt es unterschiedliche Möglichkeiten die Cursor zu benutzen.

1. Implizite Cursor

Implizite Cursor sind nicht sichtbar sondern werden automatisch beim Aufruf eines SQL-Kommandos erzeugt.

declare
  vEmployeeId number;
begin
  select EMPLOYEE_ID into vEmployeeId from EMPLOYEES where LAST_NAME = 'Mavris';
exception
 when NO_DATA_FOUND then
   vEmployeeId := 0;
 when TOO_MANY_ROWS then
   vEmployeeId := 0;
end;

Hierbei ist der Anwender jedoch sehr eingeschränkt. Da wie im obigen Beispiel nur ein Datensatz als Ergebnis zurückkommen darf, da es ansonsten zu einer Fehlermeldung (TOO_MANY_ROWS) kommt. Kommt dagegen gar kein Ergebnis zurück wird ebenso ein Fehler (NO_DATA_FOUND) geworfen. Implizite Cursor sollen daher nur verwendet werden, wenn genau ein Datensatz erwartet wird bzw. die mögliche ORA-Fehler mittels EXCEPTION gefangen werden.

2. Explizite Cursor

weiterlesen von ‘Oracle – PL/SQL Cursor’ »

 

Oracle bietet mit der Funktion decode einen Wert auf mehrere mögliche Werte zu vergleichen und bei Übereinstimmung einen speziellen Wert zurückzugeben. Dies entspricht einer verkürzten Form von der IF-THEN-ELSE Syntax.

Syntax: decode( expression , search , result [, search , result]… [, default] )

expression – Ausgangswert der mit den Werten aus search verglichen werden soll
search – Vergleichswert; bei Übereinstimmung mit expression wird result zurückgeliefert
result – Wird als Ergebnis zurückgeliefert, falls expression gleich search ist
default – Sollte keine Übereinstimmung auftreten so wird dieser Wert zurückgegeben

Beispiel:

weiterlesen von ‘Oracle – Funktion decode’ »

 

Unter Oracle gibt es durch die Funktion nvl die Möglichkeit einen Wert auf null zu überprüfen und statt dem leeren Wert (’null‘) einen alternativen Wert zurückzuliefern.

Der Aufruf sieht folgendermaßen aus: nvl(expr_1, expr_2)

Falls expr_1 leer (’null‘) ist, so gibt die Funktion den expr_2 zurück, ansonsten expr_1.

Beispiel: In der Beispieltabelle EMPLOYEES gibt es die Spalte COMMISSION_PCT, welche nicht für jeden Datensatz befüllt ist. Wir wollen nun für die Datensätze standardmäßig 0 zurückliefern, wenn kein Wert hinterlegt ist.

select nvl(COMMISSION_PCT, 0) from EMPLOYEES;

Impressum Suffusion theme by Sayontan Sinha