La différence entre Oracle et Sybase est la suivante : 1. La syntaxe SQL est incohérente, 2. Le mécanisme de post-traitement pour les champs trop longs est différent, le mécanisme de traitement Sybase est une troncature automatique, Oracle n'a pas de mécanisme de troncature automatique lors de la saisie -caractères longs, 3. Caractères de champ chinois Les longueurs de section sont incohérentes. Un caractère chinois dans la base de données Sybase occupe 2 octets et un caractère chinois dans la base de données Oracle occupe 3 octets. 4. Conversion du type de caractère. les résultats sont incohérents. 6. Le tri par défaut des résultats de l'instruction de requête est incohérent. 7. Le format de date est incohérent.
Le système d'exploitation de ce tutoriel : système Windows 10, ordinateur Dell G3.
La différence entre oracle et sybase est la suivante :
(1) La syntaxe SQL est incohérente
1. Différentes fonctions de traitement de chaîne : par exemple, Sybase est substring (), oracle est substr (); Oracle est sysdate, Sybase pour getdate().
2. La syntaxe des jointures multi-tables est différente.
(2) Le mécanisme de post-traitement pour les champs trop longs est différent
Pour les entrées qui dépassent la longueur du champ définie par la base de données, le mécanisme de traitement Sybase est une troncature automatique. Lorsque des caractères trop longs sont saisis, la transaction réussit ; ne dispose pas d'un mécanisme de troncature automatique lors de la saisie de caractères trop longs. La transaction signale alors une erreur et ne peut pas aboutir. Ce mécanisme de traitement différent de la saisie de caractères trop longs entraîne la réussite d'une grande quantité de données historiques anormales dans Sybase et l'échec dans les transactions Oracle. Les sources d'entrée des champs trop longs comprennent : (1) Les données d'entrée de l'hôte vers la base de données du système (2) Le frontal de la propre page du système ne contrôle pas la longueur des caractères et les données trop longues sont saisies ; ; (3) Le propre programme du système a des noms de fonctions trop longs, qui sont stockés dans La table de journal signale une erreur (4) Le système associé saisit un champ trop long ; Les problématiques soulevées par ce décalage sont parmi les plus répandues dans cette migration, impliquant des centaines d'opérations de rénovation. Plus tard, en réponse au problème des champs trop longs, après des discussions sur le projet, il a été décidé de réorganiser les champs liés aux transactions, de compléter les cas de test, d'effectuer des tests spéciaux et de comparer et inspecter un par un les champs saisis par les systèmes externes importants.
(3) La longueur des octets des champs chinois est incohérente
1 Le caractère chinois dans la base de données Sybase occupe 2 octets ; 1 caractère chinois dans la base de données Oracle occupe 3 octets. Par exemple, certains champs de saisie n'ont pas augmenté la longueur du champ chinois auparavant et. après la migration de la base de données, il y aura des incohérences dans les activités réelles. Par exemple : Sur une page de saisie du système, lors du test de la première version, le développement n'a pas élargi la longueur du champ des remarques personnalisées (le chinois peut être saisi), ce qui a entraîné des incohérences dans le contenu des remarques personnalisées avant et après la saisie. migration de la base de données en raison d'un écrasement dû à une longueur excessive. Il est nécessaire de se concentrer sur le tri des domaines d'activité et des types de saisie pris en charge (que le chinois soit inclus).
(4) Conversion de type de caractère
Sybase et Oracle ont des mécanismes de traitement différents pour différentes catégories de caractères ; en prenant le mécanisme de traitement du type de caractère char comme exemple, il existe des données « 6 » d'une longueur de 1 dans les données historiques dans Sybase. . Après la migration vers Oracle, lorsque la valeur est prise, des espaces seront automatiquement ajoutés à « 6 », provoquant des erreurs de logique du programme. Au début, les développeurs utilisaient trim pour filtrer les espaces dans le programme, puis changeaient uniformément le type char en type varchar.
(5) Les résultats de lecture des valeurs nulles sont incohérents
Sybase et Oracle ont des mécanismes de traitement différents pour les valeurs nulles. Par exemple : pour une valeur nulle '' de longueur 0, Sybase la stocke sous forme d'espace de longueur 1 : '', et les requêtes ultérieures Lors de la saisie d'un message de champ, ce champ est un espace d'une longueur de 1 ; Oracle le stocke comme nul. Lors de l'interrogation ultérieure de ce champ pour combiner le message, ce champ est récupéré comme NULL, ce qui signifie qu'un champ sera. manquant.
(6) L'ordre de sortie par défaut de l'instruction de requête est incohérent
Par exemple : pour les transactions détaillées, l'ordre de sortie des deux bases de données est incohérent en même temps, l'ordre de sortie des tâches en attente est également incohérent.
(7) Le format de date est incohérent
Les formats de traitement de date Sybase et Oracle sont incohérents. Par exemple : le format datetime Oracle est to_date('2020-05-1012:00:00','aaaa-mm-jjHH24:mi:ss'), le format Sybaseddatetime est '05/10/202012:00:00AM'.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!