für InterBase und FireBird | ||
[HowTo] Von Oracle nach FireBird
- Gegenüberstellung der Funktionen |
|
Die
Oracle-Funktionen beziehen sich auf die
Version 11g Bei mehreren Möglichkeiten in FireBird werden die empfohlenen Funktionen grün dargestellt. Bei gleicher Funktionalität haben Build-in-Funktionen Vorrang vor UDFs - aus Geschwindigkeits- und Sicherheitsgründen |
String-Funktionen | |||
Oracle-Funktion | FireBird-Funktion | seit | FreeAdhocUDF-Funktion |
Ascii | ASCII_VAL nur für ASCII-Zeichensätze |
FB 2.1 | F_ORD
nur ASCII U_ORD auch UTF8 |
AsciiStr | nicht vorhanden- überflüssig - Oracle spezifisch | ||
konvertiert einen
String in einem beliebigen CharacterSet zu einem reinen
ASCII-String
Beispiel: asciistr('A B C Ä Ê') ergibt 'A B C \00C4 \00CA' |
|||
Chr | ASCII_CHAR nur für ASCII-Zeichensätze |
FB 2.1 | F_CHR
nur ASCII U_CHAR auch UTF8 |
Compose | nicht vorhanden - überflüssig - Oracle spezifisch | ||
Fügt einen
ASCII-Character mit einem UniString zu einem Sonderzeichen
zusammen
Beispiel: compose('o' || unistr('\0308') ) ergibt ö |
|||
Concat | || (DoppelPipe) | IB | |
Concat with || | || (DoppelPipe) | IB | |
Convert | nicht vorhanden - überflüssig - Oracle spezifisch | ||
Konvertiert einen
String von einem CharacterSet zu einem anderen
|
|||
Decompose | nicht vorhanden - überflüssig - Oracle spezifisch | ||
Konvertiert einen
String in einen UniString
Beispiel: decompose('Très bien') ergibt 'Tre`s bien' |
|||
Dump | nicht vorhanden - überflüssig - Oracle spezifisch | ||
ergibt einen String
mit datatype code, Länge in bytes und die interne
Representation des Strings
Beispiel: dump('Tech') ergibt 'Typ=96 Len=4: 84,101,99,104' |
|||
Initcap | nicht vorhanden | F_PROPERCASE nur ASCII U_PROPERCASE auch UTF8 |
|
Instr | POSITION auch anwendbar auf BLObs, alle CharacterSets |
FB 2.1 | F_SUBSTR
nur ASCII U_SUBSTR auch UTF8 |
Oracle auch weitere Vorkommen wählbar, FB und FAU immer nur Position des 1. Vorkommens | |||
Length | CHAR_LENGTH auch anwendbar auf BLObs, alle CharacterSets |
FB
2.0 FB 2.1 |
F_STRINGLENGTH
nur ASCII U_STRINGLENGTH auch UTF8 |
Lower | LOWER auch anwendbar auf BLObs, alle CharacterSets |
FB
2.0 FB 2.1 |
F_LOWER
nur ASCII U_LOWER auch UTF8 |
Lpad | LPAD auch anwendbar auf BLObs, alle CharacterSets |
FB 2.1 | F_PADLEFT nur ASCII U_PADLEFT auch UTF8 |
Ltrim | TRIM auch anwendbar auf BLObs, alle CharacterSets trimmt wie Oracle auch andere als Leerzeichen trimmt links und/oder rechts - Oracle nur links |
FB
2.0 FB 2.1 |
F_LTRIM auch UTF8 trimmt nur Leerzeichen |
Replace | REPLACE auch anwendbar auf BLObs, alle CharacterSets |
FB 2.1 | F_CONVERTSYMBOLS
nur ASCII U_CONVERTSYMBOLS auch UTF8 |
Rpad | RPAD auch anwendbar auf BLObs, alle CharacterSets |
FB 2.1 | F_PADRIGHT
nur ASCII U_PADRIGHT auch UTF8 |
Rtrim | TRIM auch anwendbar auf BLObs, alle CharacterSets trimmt wie Oracle auch andere als Leerzeichen trimmt links und/oder rechts - Oracle nur rechts |
FB
2.0 FB 2.1 |
F_RTRIM auch UTF8 trimmt nur Leerzeichen |
Soundex | nicht vorhanden | F_SOUNDEX auch UTF8 | |
Substr | SUBSTRING auch anwendbar auf BLObs, alle CharacterSets |
FB
2.0 FB 2.1 |
F_MID
nur ASCII U_MID auch UTF8 |
Translate | nicht vorhanden | F_CONVERTSYMBOLS
nur ASCII U_CONVERTSYMBOLS auch UTF8 |
|
Trim | TRIM auch anwendbar auf BLObs, alle CharacterSets trimmt wie Oracle auch andere als Leerzeichen |
FB
2.0 FB 2.1 |
F_LRTRIM auch UTF8 trimmt nur Leerzeichen |
Upper | UPPER auch anwendbar auf BLObs, alle CharacterSets |
FB
2.0 FB 2.1 |
F_UPPER
nur ASCII U_UPPER auch UTF8 |
VSize | nicht vorhanden | nicht vorhanden | |
Ermittelt die Anzahl der Bytes eines Strings |
Numerische-Funktionen | |||
Oracle-Funktion | FireBird-Funktion | seit | FreeAdhocUDF-Funktion |
Abs | ABS | FB 2.1 | F_ABS, F_DOUBLEABS, F_INTEGERABS |
Acos |
ACOS | FB 2.1 | F_ACOS |
Asin |
ASIN | FB 2.1 | F_ASIN |
Atan |
ATAN | FB 2.1 | F_ATAN |
Atan2 |
ATAN2 | FB 2.1 | F_ATAN2 |
Avg |
AVG | IB | |
Bin_To_Num |
nicht vorhanden | F_CONVERTFROMBASE andere Syntax, weitere Zahlensysteme |
|
BitAnd |
BIN_AND | FB 2.1 | F_BIN_AND |
Ceil |
CEILING | FB 2.1 | F_CEILING |
Corr |
nicht vorhanden | nicht vorhanden | |
ermittelt den Korrelationskoeffizient einer Menge von Zahlenpaaren | |||
Cos |
COS | FB 2.1 | F_COS |
Cosh |
COSH | FB 2.1 | F_COSH |
Covar_pop |
nicht vorhanden | nicht vorhanden | |
ermittelt die Populationskovarianz einer Menge von Zahlenpaaren | |||
Covar_samp |
nicht vorhanden | nicht vorhanden | |
ermittelt die Probe Kovarianz einer Menge von Zahlenpaaren | |||
Count |
COUNT | IB | |
Cume_Dist |
nicht vorhanden | nicht vorhanden | |
ermittelt die kumulative Verteilung eines Wertes in einer Gruppe von Werten | |||
Dense_Rank |
nicht vorhanden | nicht vorhanden | |
ermittelt den Rang einer Zeile in einer Gruppe von Zeilen | |||
Exp |
EXP | FB 2.1 | F_EXP |
Floor |
FLOOR | FB 2.1 | F_FLOOR |
Greatest |
MAXVALUE | FB 2.1 | |
Least |
MINVALUE | FB 2.1 | |
Ln |
LN | FB 2.1 | F_LN |
Log |
LOG | FB 2.1 | F_LOG |
Max |
MAX | IB | F_MAX, F_MAXNUM |
Median |
nicht vorhanden | nicht vorhanden | |
ermittelt den Median (oder Zentralwert), die Grenze zwischen zwei Hälften. In der Statistik halbiert der Median eine Verteilung | |||
Min |
MIN | IB | F_MIN, F_MINNUM |
Mod |
MODULO | FB 2.1 | F_MODULO |
Power |
POWER | FB 2.1 | F_POWER |
Rank |
nicht vorhanden | nicht vorhanden | |
Ermittelt den Rang eines Wertes in einer Gruppe von Werten | |||
Remainder |
nicht vorhanden | nicht vorhanden | |
Ermittelt den
ganzahligen Rest einer Division.
Parameter auch DOUBLE PRESCISION möglich. Im Unterschied zu MOD (benutzt floor) benutzt remainder round |
|||
Round (numbers) |
ROUND | F_ZAHLRUNDEN, F_ROUNDCOMMON | |
Sign |
SIGN | FB 2.1 | F_SIGN |
Sin |
SIN | FB 2.1 | F_SIN |
Sinh |
SINH | FB 2.1 | F_SINH |
Sqrt |
SQRT | FB 2.1 | F_SQRT |
StdDev |
nicht vorhanden | nicht vorhanden | |
ermittelt die Standard-Abweichung in einer Gruppe von Werten | |||
Sum |
SUM | IB | |
Tan |
TAN | FB 2.1 | F_TAN |
Tanh |
TANH | FB 2.1 | F_TANH |
Trunc (numbers) |
TRUNC | FB 2.1 | F_TRUNCATE |
Var_pop |
nicht vorhanden | nicht vorhanden | |
Berechnet die Varianz ausgehend von der Grundgesamtheit | |||
Var_samp |
nicht vorhanden | nicht vorhanden | |
Berechnet die Stichprobenvarianz aus einer Gruppe von Werten | |||
Variance | nicht vorhanden | nicht vorhanden | |
Berechnet die Abweichung aus einer Anzahl von Werten |
Datum-/Zeit-Funktionen | |||
Oracle-Funktion | FireBird-Funktion | seit | FreeAdhocUDF-Funktion |
Add_Months | DATEADD | FB 2.1 | F_ADDMONTH |
Current_Date |
überflüssig - Datentyp in FireBird nicht vorhanden | ||
Ergibt das DATUM im Datentyp TIMESTAMP mit TIMEZONE | |||
Current_Timestamp |
überflüssig - Datentyp in FireBird nicht vorhanden | ||
Ergibt den TIMESTAMP im Datentyp TIMESTAMP mit TIMEZONE | |||
DbTimeZone |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
ermittelt die Zeitzone der Datenbank | |||
Extract |
EXTRACT | IB | diverse Funktionen |
Last_Day |
nicht vorhanden | F_LASTDAY andere
Syntax F_LASTDAYMONTH |
|
Round (dates) | nicht vorhanden | nicht vorhanden | |
Rundet einen Timestamp auf einen Timestamp | |||
LocalTimestamp |
CURRENT_TIMESTAMP | IB | |
Months_Between |
DATE_DIFF | FB 2.1 | F_AGEINMONTH
andere
Syntax F_MONTHBETWEEN andere Syntax |
Next_Day |
nicht vorhanden | nicht vorhanden | |
Ermittlet das Datum des nächsten Wochentages nach dem Datum (Beispiel: nächster Dienstag nach dem xx.xx.xxxx) | |||
SessionTimeZone |
nicht vorhanden | nicht vorhanden | |
Ermittelt die lokale Zeitzone | |||
Sysdate |
CURRENT_TIMESTAMP | IB | |
SysTimestamp |
CURRENT_TIMESTAMP | IB | |
To_Char |
nicht vorhanden | F_DATETOSTR F_DATETOSTRLANG U_DATETOSTRLANG |
|
To_Date |
CAST(string TO TIMESTAMP) | F_STRTOTIME | |
Konvertiert einen String nach angegebener Format-Maske in einen TIMESTAMP | |||
Trunc (dates) | nicht vorhanden | F_FIRSTDAYQUARTER F_FIRSTDAYMONTH F_FIRSTDAYWEEK F_FIRSTDAYWEEKISO F_FIRSTDAYWOY F_FIRSTDAYKW nicht alle Möglichkeiten von Trunc dates |
|
Tz_Offset | nicht vorhanden | nicht vorhanden | |
Ermittelt den Offset einer eingegebenen Zeitzone zu UTC |
Umrechnungs-Funktionen | |||
Oracle-Funktion | FireBird-Funktion | seit | FreeAdhocUDF-Funktion |
Bin_To_Num Umrechnung nur Binarsystem |
nicht vorhanden | F_CONVERTFROMBASE andere Parameter |
|
Cast |
CAST | IB | |
CharToRowid |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
Konvertiert ein char,
varchar2, nchar, oder nvarchar2 zu einer rowid
|
|||
From_Tz |
überflüssig - Datentyp in FireBird nicht vorhanden | ||
Konvertiert ein
TIMESTAMP und eine TIMEZONE zu einem Datentyp TIMESTAMP mit
TIMEZONE
|
|||
HexToRaw |
nicht vorhanden | F_HEXTOINT | |
NumToDSInterval |
nicht vorhanden | F_PERIOD2SECONDS auch UTF8 | |
Konvertiert eine
Zahl mit einer (Zeit-)Einheit
zu einer Zeitspanne/Zeitraum im Datentyp INTERVAL (DAY TO SECOND) Beispiel: NumToDSInterval(1440, 'MINUTE') (Zeitdauer von 1440 Minuten ausgegeben in Tagen) ergibt '+01' -> 1 Tag FAU: F_PERIOD2SECONDS('0:0:1440:0') (Zeitdauer von 1440 Minuten ausgegeben in Sekunden) ergibt 86400 Sekunden -> 86400 Sekunden / 60 Sekunden / 60 Minuten / 24 Stunden = 1 Tag |
|||
NumToYMInterval |
nicht vorhanden | F_PERIOD2SECONDS auch UTF8 | |
Konvertiert eine
Zahl zu einer
Zeitspanne/Zeitraum im Datentyp INTERVAL (YEAR TO MONTH) |
|||
New_Time |
nicht vorhanden | nicht vorhanden | |
Konvertiert
einen TIMESTAMP aus der Zeitzone 1
in einen TIMESTAMP der Zeitzone 2 Nur US-Zeitzonen als Parameter möglich |
|||
RawToHex |
nicht vorhanden | F_INTOTHEX | |
To_Clob |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
konvertiert einen
LOB-Wert vom national CharacterSet in den CharacterSet der
Datenbank
|
|||
To_DSInterval |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
konvertiert einen
String zu einem INTERVAL DAY TO SECOND Typ
|
|||
To_Lob |
überflüssig, FB behandelt BLObs wie Strings | FB 2.1 | F_STRBLOB |
To_Multi_Byte |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
konvertiert einen
Single-Byte-String zu einem Multi-Byte-String
|
|||
To_NClob | nicht vorhanden - überflüssig - Oracle spezifisch | ||
konvertiert einen
LOB-Wert in den national CharacterSet
|
|||
To_Number |
nicht vorhanden | F_DIGITS, F_TELEFONNR in Kombination mit CAST() | |
To_Number erlaubt die Angabe eines Pattern | |||
To_Single_Byte |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
konvertiert einen
Multi-Byte-String zu einem Single-Byte-String
|
|||
To_Timestamp |
CAST(string TO TIMESTAMP) | F_STRTOTIME | |
To_Timestamp erlaubt die Angabe eines Pattern | |||
To_Timestamp_Tz |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
konvertiert einen
String zu einem INTERVAL DAY TO SECOND Typ
|
|||
To_YMInterval | nicht vorhanden - überflüssig - Oracle spezifisch | ||
konvertiert einen
String zu einem INTERVAL YEAR TO MONTH Typ
|
Advanced/sonstige-Funktionen | |||
Oracle-Funktion | FireBird-Funktion | seit | FreeAdhocUDF-Funktion |
BFilename | nicht vorhanden - überflüssig - Oracle spezifisch | ||
liefert den BFILE-Locator für eine
physische LOB Binärdatei
|
|||
Cardinality |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
liefert
die Anzahl der Elemente in einem verschachtelten Tabelle
|
|||
Case Statement |
CASE | FB 1.5 | |
Coalesce |
COALESCE | FB 1.5 | |
Decode |
DECODE | FB 2.1 | |
Group_ID |
nicht vorhanden | nicht vorhanden | |
ordnet für jede Gruppe aus einer
GROUP BY-Klausel eine Zahl zu
|
|||
Lag |
nicht vorhanden | nicht vorhanden | |
erlaubt es mehrere Ergebnis-Werte (Zeilen) aus einer Tabelle gleichzeitig in einer Abfrage aufzulisten, ohne die Tabelle mit sich selbst zu joinen. Die Funktion Lag gibt den vorigen Ergebnis-Wert wieder | |||
Lead |
nicht vorhanden | nicht vorhanden | |
erlaubt es mehrere Ergebnis-Werte (Zeilen) aus einer Tabelle gleichzeitig in einer Abfrage aufzulisten, ohne die Tabelle mit sich selbst zu joinen. Die Funktion Lead gibt den nächsten Ergebnis-Wert wieder | |||
LNNVL |
nicht vorhanden | nicht vorhanden | |
ermöglicht auch
die Ausgabe von NULL in einer Abfrage-Konditions-Prüfung Beispiel: select * from products where LNNVL(qty >= reorder_level); |
|||
NANVL |
nicht vorhanden | nicht vorhanden | |
ermöglicht es, den Wert NaN (not a number) durch einen anderen Wert zu ersetzen | |||
NULLIF |
NULLIF | FB 1.5 | |
NVL |
COALESCE | FB 1.5 | SNVL, INVL, DNVL |
NVL2 |
COALESCE | FB 1.5 | SNVL2, INVL2, DNVL2 |
Sys_Context |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
liefert Informationen über die
Oracle-Umgebung
|
|||
Uid |
nicht vorhanden - überflüssig - Oracle spezifisch | ||
liefert die Prozess-ID des
eingeloggten Users
|
|||
User |
CURRENT_USER | ||
UserEnv | nicht vorhanden - überflüssig - Oracle spezifisch | ||
liefert Informationen über die
Oracle-Umgebung (alte Funktion) - wurde ersetzt durch Sys_Context
|