Skalare FunktionenAlle Funktionen dieses Typs beziehen sich grundsätzlich nur auf eine Datenzeile! BeispielAlle Kundennamen in Großschrift: select kunden_nr, upper(name1 || ' ' || name2) name from kunde;
Numerische Funktionen
Beispieleselect round
(21.76) from dual; select trunc
(21.76) from dual; select trunc
(21.76, -1) from dual; Der zweite Parameter bei "round" und "trunc" gibt die Position der Stelle an, an der gerundet bzw. abgeschnitten werden soll. Positive Zahlen bedeuten Stellen nach dem Komma, negative vor dem Komma. Gibt man den Wert nicht an greift der Defaultwert "0", der ganzzahlig rundet bzw. abschneidet. Stringfunktionen
BeispieleTeilstring bestimmensubstr('TAKTUM Informatik', 1, 6) Sucheninstr('TAKTUM Informatik', 'Info') Zeichen erzeugenchr(65) Auf diese Weise können auch nicht druckbare Sonderzeichen in einen String eingefügt werden. Allerdings muss dann der Zeichensatz der Datenbank bekannt sein. Zeichenkodierung erzeugenascii('A') Teilstring erseztenreplace('SCHADE', 'D', 'LK') Zeichen austauschentranslate('ABC67LR5', '0123456789','**********') translate('ABC67LR5', '*0123456789','*') Auf diese Weise lassen sich unerwünschte Zeichen elegant aus einer Zeichenkette entfernen. Datum-Funktionen
Beispielesysdate+1 round(sysdate) months_between(to_date('25.12.2002', 'dd.mm.yyyy'), to_date('10.11.2002',
'dd.mm.yyyy')) months_between(to_date('25.12.2002', 'dd.mm.yyyy'), to_date('25.11.2002',
'dd.mm.yyyy')) Als Basis zur Berechnung werden immer 31 Tage je Monat zugrunde gelegt. Sonstige Funktionen
Beispieledecode (status,'A','Angelegt','E','Erledigt','S','Storniert','Unbekannt') Je Nach Status werden unterschiedliche Zeichenketten zurück geliefert. Z.b. Bei 'E' 'Erledigt'. Ist der Status nicht 'A', 'E' oder 'S' liefert "decode" 'Unbekannt'. Mit "decode" lassen sich Berechnungen durchführen, die sonst nur mittels Programmierung realisierbar wären. Typische Anwendungen sind Kategorisierungen. nvl(artikel_nr, 999999) Ergebnis: 999999 wenn die Artikelnummer nicht gefüllt ist sonst die Artikelnummer vsize(sysdate) Konvertierungsfunktionen
Beispieleinsert into druckersteuerung (befehl, code) values ('6 Zeilen/Zoll', hextoraw('1B266C3644')); to_char(23012.9, '000G000D00') Konvertierung von Datum in Zeichenkette (to_char) und umgekehrt (to_date)
Wichtige Formatzeichen
Beispieleselect to_char (datum, 'dd.mm.yyyy hh24:mi:ss') Datum from auftrag; select to_char (to_date ('10.08.1999', 'dd.mm.yyyy'), 'dd.mm.yyyy hh24:mi:ss') from dual; Aufgabe: Bestimme die Anzahl der Aufträge vom 21. September 1999: Lösung 1:select * => Problem: Was ist mit der Uhrzeit? Lösung 2:select * oder select * Beispieleto_date ('10.08.1999', 'dd.mm.yyyy') to_date ('10.08.1999 13', 'dd.mm.yyyy hh24') Konvertierung von Zahlen in Zeichenketten (to_char) und umgekehrt (to_number)
Wichtige Formatzeichen
Beispieleselect to_char
(anzahl * preis, '999G990D00') Umsatz select preis * to_number
('1,8', '9D9') Stichwörter Funktion Funktionen Beispiel Beispiele Datum Zahlen Strings Zeichenketten to_char to_date to_number nvl decode substr instr sysdate ltrim rtirm trim replace length lpad rpad if Bedingung Rechnen |