FreeAdhocUDF für InterBase und FireBird in deutschin englishen français
homeprevious pagecontentnext pagelast page Mailing-Liste • mailinglist • liste de diffusionwas ich vermisse • what I missed •eMail Kommentar • eMail commentprint
[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
nach oben • go top • vers le hautnächste Seite • next page • prochain site