Heim  >  Artikel  >  Was ist der Unterschied zwischen Oracle und Sybase?

Was ist der Unterschied zwischen Oracle und Sybase?

DDD
DDDOriginal
2023-06-01 13:46:241572Durchsuche

Der Unterschied zwischen Oracle und Sybase ist: 1. Die SQL-Syntax ist inkonsistent. 2. Der Nachverarbeitungsmechanismus für überlange Felder ist unterschiedlich. Der Sybase-Verarbeitungsmechanismus ist die automatische Kürzung. Oracle verfügt über keinen automatischen Kürzungsmechanismus bei der Eingabe von überlangen Feldern Zeichen, 3. Chinesische Feldzeichen Die Abschnittslängen sind inkonsistent. Ein chinesisches Zeichen in der Sybase-Datenbank belegt 2 Bytes, und ein chinesisches Zeichen in der Oracle-Datenbank belegt 3 Bytes. 5. Die Ergebnisse beim Lesen von Nullwerten sind inkonsistent. 6. Die Standardsortierung der Abfrageanweisungsausgabe ist inkonsistent. 7. Das Datumsformat ist inkonsistent.

Was ist der Unterschied zwischen Oracle und Sybase?

Das Betriebssystem dieses Tutorials: Windows 10-System, Dell G3-Computer.

Der Unterschied zwischen Oracle und Sybase ist:

(1) Die SQL-Syntax ist inkonsistent

1. Sybase ist beispielsweise substring (), Oracle ist substr (); Oracle ist sysdate, Sybase für getdate().

2. Die Syntax für Multi-Table-Joins ist anders.

(2) Der Nachverarbeitungsmechanismus für überlange Felder ist unterschiedlich. Bei Eingaben, die die von der Datenbank definierte Feldlänge überschreiten, führt der Sybase-Verarbeitungsmechanismus eine automatische Kürzung durch. Wenn überlange Zeichen eingegeben werden, ist die Transaktion erfolgreich Wenn bei der Eingabe überlanger Zeichen kein automatischer Kürzungsmechanismus vorhanden ist, meldet die Transaktion einen Fehler und kann nicht erfolgreich sein. Dieser andere Mechanismus zur Verarbeitung überlanger Zeicheneingaben führt dazu, dass eine große Menge historischer abnormaler Daten in Sybase erfolgreich ist und in Oracle-Transaktionen fehlschlägt. Zu den Eingabequellen überlanger Felder gehören: (1) Die Eingabedaten vom Host in die Systemdatenbank (2) Das Front-End der systemeigenen Seite kontrolliert nicht die Zeichenlänge und es werden überlange Daten eingegeben ; (3) Das systemeigene Programm hat überlange Funktionsnamen, die in der Protokolltabelle gespeichert sind. (4) Das zugehörige System gibt ein überlanges Feld ein. Die durch diese Diskrepanz aufgeworfenen Probleme sind die am weitesten verbreiteten Probleme der Migration, die Hunderte von Renovierungstransaktionen umfasst. Als Reaktion auf das Problem überlanger Felder wurde später nach Projektbesprechungen beschlossen, die transaktionsbezogenen Felder neu zu organisieren, Testfälle zu ergänzen, spezielle Tests durchzuführen und die von wichtigen externen Systemen eingegebenen Felder einzeln zu vergleichen und zu überprüfen.

(3) Chinesische Feldbytelängen sind inkonsistent

1 chinesisches Zeichen in der Sybase-Datenbank belegt 2 Bytes; 1 chinesisches Zeichen in der Oracle-Datenbank belegt 3 Bytes. Beispielsweise wurde die chinesische Feldlänge bei einigen Eingabefeldern nicht erweitert Nach der Datenbankmigration kommt es zu Inkonsistenzen im tatsächlichen Geschäft. Beispiel: Auf einer Eingabeseite des Systems hat die Entwicklung beim ersten Versionstest die Feldlänge der benutzerdefinierten Bemerkungen nicht erweitert (Chinesisch kann eingegeben werden), was zu Inkonsistenzen im Inhalt der benutzerdefinierten Bemerkungen vor und nach dem führte Datenbankmigration durch Überschreiben aufgrund der zu großen Länge. Es ist notwendig, sich auf die Sortierung der Geschäftsfelder und unterstützten Eingabetypen zu konzentrieren (ob Chinesisch enthalten ist).

(4) Zeichentypkonvertierung

Sybase und Oracle verfügen über unterschiedliche Verarbeitungsmechanismen für unterschiedliche Zeichentypen. Am Beispiel des Zeichentypverarbeitungsmechanismus char gibt es Daten „6“ mit einer Länge von 1 in den historischen Daten in Sybase . Nach der Migration zu Oracle werden bei Übernahme des Werts automatisch Leerzeichen zu „6“ hinzugefügt, was zu Programmlogikfehlern führt. Zuerst verwendeten die Entwickler Trim, um Leerzeichen im Programm zu filtern, und änderten dann den char-Typ einheitlich in den varchar-Typ.

(5) Die Ergebnisse beim Lesen von Nullwerten sind inkonsistent.

Sybase und Oracle verfügen über unterschiedliche Verarbeitungsmechanismen für Nullwerte. Beispiel: Für einen Nullwert '' der Länge 0 speichert Sybase ihn als Leerzeichen der Länge 1: '', Bei der Eingabe einer Feldnachricht ist dieses Feld ein Leerzeichen mit der Länge 1; bei der anschließenden Abfrage dieses Felds zum Kombinieren der Nachricht wird dieses Feld als NULL abgerufen, was bedeutet, dass es ein Feld ist fehlen.

(6) Die Standardreihenfolge der Ausgabe der Abfrageanweisung ist inkonsistent.

Beispiel: Bei detaillierten Transaktionen ist die Ausgabereihenfolge der beiden Datenbanken inkonsistent. Gleichzeitig ist auch die Ausgabereihenfolge der ausstehenden Aufgaben inkonsistent.

(7) Das Datumsformat ist inkonsistent.

Die Datumsverarbeitungsformate von Sybase und Oracle sind inkonsistent. Beispiel: Das Oracle-Datums-/Uhrzeitformat ist to_date('2020-05-1012:00:00','yyyy-mm-ddHH24:mi:ss'), das Sybaseddatetime-Format ist '05/10/202012:00:00AM'.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Oracle und Sybase?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn