AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DB-Funktionen von MSSQL in Oracle nachbauen

DB-Funktionen von MSSQL in Oracle nachbauen

Ein Thema von Jumpy · begonnen am 15. Mai 2020 · letzter Beitrag vom 20. Mai 2020
Antwort Antwort
Seite 1 von 2  1 2   
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#1

DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 15. Mai 2020, 15:53
Datenbank: Oracle • Version: 11g • Zugriff über: versch.
Hallo,

wir haben ein Fremd-Programm, dass mit verschieden DBMS zusammenarbeiten kann übernommen und dabei von MSSQL nach Oracle migriert. Läuft soweit alles.
Der Kunde setzt nun aber zu Auswertungs-Zwecken tausende (keine Übertreibung!) selbstgebastelte SQL-Statements ein und in diesen finden sich dann auch klassische SQL-Funktionen von MSSQL, ich sag mal als Beispiel die Funktion ISNULL.
Wir möchten jetzt vermeiden tausende SQL-Statements anzupacken und umschreiben zu müssen und würden gerne diese Funktionen in Oracle als eigene DB-Function nachbauen, also im Beispiel eine Function "ISNULL" schreiben, die dann intern mit Oracles "NVL" arbeitet.

Deswegen nun die Frage: Hat das vielleicht schon mal wer gemacht, gibt es da vllt. fertige Scripte um die gängigsten MSSQL-Function in Oracle nachzubauen.
Ralph
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.868 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 15. Mai 2020, 16:26
Vielleicht so ein Ansatz wie bei Fyracle. Also ein (Proxy-)Server, der die Abfragen umwandelt und die angepassten Abfragen dann an das eigentliche DBMS weiterleitet.

http://sqlrelay.sourceforge.net/documentation.html
Markus Kinzler

Geändert von mkinzler (15. Mai 2020 um 16:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.211 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 15. Mai 2020, 17:10
wir haben ein Fremd-Programm, dass mit verschieden DBMS zusammenarbeiten kann übernommen und dabei von MSSQL nach Oracle migriert. Läuft soweit alles.
Beileid. Aber wenn man meint das zu müssen ... (OK, war jetzt Off-Topic)

Der Kunde setzt nun aber zu Auswertungs-Zwecken tausende (keine Übertreibung!) selbstgebastelte SQL-Statements ein und in diesen finden sich dann auch klassische SQL-Funktionen von MSSQL, ich sag mal als Beispiel die Funktion ISNULL.
Also habt ihr doch nicht Migriert. War euch nicht im Vorfeld klar das genau sowas auch zu einer Migration gehört?

Wir möchten jetzt vermeiden tausende SQL-Statements anzupacken und umschreiben zu müssen und würden gerne diese Funktionen in Oracle als eigene DB-Function nachbauen, also im Beispiel eine Function "ISNULL" schreiben, die dann intern mit Oracles "NVL" arbeitet.
Habt ihr wirklich zu eine 13 Jahre alten Oracle-Version gewechselt? (Es steht Oracle 11 am Ticket)

Hintergrund: Auch Oracle kann nicht dem SQL-Standard sperren und mit neueren Versionen (z.B. 18 als Long-Support-Version) lösen sich evtl. einige der Probleme in Luft auf, da Oracle dann evtl. mehr 1:1 Gegenstück zu solchen MS SQL Server Funktionen hat.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 17. Mai 2020, 10:34
Wie wäre es mit einer Übersetzungssoftware replace(msstatement,oraclestatement)? Beide Systeme sind unterschiedlich, dann sind die Scripte es auch!
Hätte nebenher den Vorteil der Übersetzer wäre auch für andere Systemwechsel einsetzbar.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
DasWolf

Registriert seit: 7. Jun 2016
76 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 18. Mai 2020, 10:58
Hintergrund: Auch Oracle kann nicht dem SQL-Standard sperren und mit neueren Versionen (z.B. 18 als Long-Support-Version) lösen sich evtl. einige der Probleme in Luft auf, da Oracle dann evtl. mehr 1:1 Gegenstück zu solchen MS SQL Server Funktionen hat.
ISNULL ist nicht der SQL-Standard und wird in ORACLE auch keine Verwendung finden.
ISNULL ist SQL-Server spezifisch und NVL ist Oracle-spezifisch.

COALESCE ist der SQL-Standard und funktioniert bei beiden DBMS.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.211 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 18. Mai 2020, 11:45
COALESCE ist der SQL-Standard und funktioniert bei beiden DBMS.
Coalesce war bei uns einer der Gründe das wir mit neueren Versionen der Anwendung definitiv kein alte Oracles mehr unterstützen, welche kein Coalesce können.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.316 Beiträge
 
Delphi 12 Athens
 
#7

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 18. Mai 2020, 12:23
ISNULL als Funktion() oder als Operator?

Postgres kennt auch sowas (x IS NULL, x IS NOT NULL, x ISNULL und x NOTNULL),
aber der Operator ließe sich im SQL-Export/Backup ja problemlos String-Replacen,
anstatt unnötig aufwändig diese Funktionen nachzubauen.

"ISNULL(" -> "COALESCE("
"NOT ISNULL" -> "IS NOT NULL"
"NOTNULL" -> "IS NOT NULL"
"ISNULL" -> "IS NULL"

Oracle kann kein COALESCE?
Zitat:
COALESCE ist der SQL-Standard und funktioniert bei beiden DBMS
klang so, als wenn wenigstens das ging
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 18. Mai 2020, 13:01
ISNULL als Funktion() oder als Operator?
Als Funktion ala "Wenn das Feld Null ist dann ersatzweise dies hier".

ISNULL war jetzt auch nur Beispielhaft genannt.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#9

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 19. Mai 2020, 10:14
Moin zusammen,

einiges kann man per Oracle-Function nachbauen. Coalesque gibt es meine erachtens auch bei 11g schon, aber das waere auch ueber eine Funktion kein Problem. Diese isnull Sachen gehen wahrscheinlich nicht nachzubauen. Es werden einem die Freuden der Migration daher einholen.

Grüße in die Runde

Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.211 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: DB-Funktionen von MSSQL in Oracle nachbauen

  Alt 17. Mai 2020, 10:57
wir haben ein Fremd-Programm, dass mit verschieden DBMS zusammenarbeiten kann übernommen und dabei von MSSQL nach Oracle migriert. Läuft soweit alles.
Auch wenn es OT ist.
Wieso macht man sowas?
In unserem Umfeld migriert man eher von Oracle weg, als nach Oracle.
Hat in euren Umfeld Oracle einen Unschlagbaren Vorteil, welche (wegen der scripts) doch sehr aufwendigen und teure Migration rechtfertigen würde?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz