Maison  >  Article  >  base de données  >  Quelle est la différence entre Oracle et DB2

Quelle est la différence entre Oracle et DB2

青灯夜游
青灯夜游original
2022-01-07 17:15:5911205parcourir

Différences : 1. Oracle prend en charge l'instruction "créer ou remplacer", mais DB2 ne la prend pas en charge ; 2. Le type DATE dans ORACLE a les heures, les minutes et les secondes, tandis que DATE sous DB2 n'est que l'année, le mois et le jour ; 3. La fonction SUBSTR() dans Oracle Les deux paramètres peuvent prendre la valeur 0, mais pas dans DB2.

Quelle est la différence entre Oracle et DB2

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Oracle et DB2 sont deux bases de données différentes.

Oracle :

Oracle est un système de gestion de base de données relationnelle d'Oracle Corporation.

Le système de base de données ORACLE est un ensemble de produits logiciels avec une base de données distribuée comme noyau fourni par la société américaine ORACLE (Oracle). Il s'agit actuellement de l'une des bases de données d'architecture client/serveur (CLIENT/SERVER) ou B/S les plus populaires. Par exemple, SilverStream est une sorte de middleware basé sur une base de données. La base de données ORACLE est actuellement le système de gestion de base de données le plus utilisé au monde. En tant que système de base de données général, il possède des fonctions complètes de gestion de données ; .

DB2 :

signifie IBM DB2. Il s'agit d'un système de gestion de bases de données relationnelles développé par IBM aux États-Unis. Ses principaux environnements d'exploitation sont UNIX (y compris AIX d'IBM), Linux, IBM i (anciennement OS/400), z/OS et les versions serveur Windows.

DB2 est principalement utilisé dans les systèmes d'applications à grande échelle. Il a une bonne évolutivité, peut tout prendre en charge, du mainframe aux environnements mono-utilisateur, et peut être utilisé sur toutes les plates-formes de système d'exploitation serveur courantes. DB2 offre un haut niveau de capacités d'utilisation, d'intégrité, de sécurité, de récupération et d'exécution des données pour les applications de petite et grande taille, avec des fonctions de base et des commandes SQL indépendantes de la plate-forme. DB2 adopte une technologie de classification des données, qui permet de télécharger facilement les données du mainframe sur un serveur de base de données LAN, permettant aux utilisateurs client/serveur et aux applications basées sur LAN d'accéder aux données du mainframe et rendant transparentes la localisation de la base de données et les connexions à distance. DB2 est connu pour disposer d'un optimiseur de requêtes très complet, dont les connexions externes améliorent les performances des requêtes et prennent en charge les requêtes parallèles multitâches. DB2 dispose d'excellentes capacités de prise en charge réseau. Chaque sous-système peut connecter des centaines de milliers d'utilisateurs distribués et activer des milliers de threads actifs en même temps. Il est particulièrement adapté aux systèmes d'applications distribués à grande échelle.

La différence entre Oracle et db2

Fonction de conversion de type de données

Quelle est la différence entre Oracle et DB2

a Alias ​​de sous-requête (tel qu'il peut être utilisé)

ORACLE 中支持:select * from(select 1 from dual) 或者 select * from(select 1 from dual) t

DB2    中支持:select * from(select 1 from sys.userId) t 或者 select * from(select 1 from sys.userId) as t

两者兼容  写法:select * from(子查询) t

Oracle中遇到列名为Oracle关键字的,需要用双引号括起来

b. (remplacer champ )

Oracle prend en charge, DB2 ne prend pas en charge

Les instructions de création ou de remplacement sont illégales sous DB2

不可以用 CREATE OR REPLACE SEQUENCE a1,要用 CREATE SEQUENCE a1

c La différence entre les types de données DATE :

Le type DATE dans ORACLE a des heures, des minutes. et seconds , mais DATE sous DB2 n'est que l'année, le mois et le jour, comme '2007-04-28', et peut être directement utilisé comme une chaîne pour enregistrer les heures, les minutes et les secondes dans DB2, le type TIMESTAMP doit être utilisé. . Lorsque SQL transmet des valeurs, la base de données est de type date. S'il n'y a que l'année, le mois et le jour (aaaa-MM-jj) à l'écran, lors de l'utilisation de la base de données, faites attention lors de la transmission des valeurs :

① Utilisez String pour transmettre. valeurs

② Utilisez Date pour transmettre des valeurs (vous devez formater les heures, les minutes et les secondes dans les variables de type Date)

select to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss:ff') from dual;
select to_date(to_char(systimestamp, 'yyyy-mm-dd hh24:mi:ss:ff'),'yyyy-mm-dd hh24:mi:ss:ff')from dual;

d Obtenez la date du système :

ORACLE: Select sysdate from dual;
DB2:    Select current timestamp/date from sysibm.sysdummy1;

e. Utilisation du substr :

SUBSTR(Str,POS,<LENGTH>) ; --Str需要截取的参数,POS从什么位置截取,LENGTH截取的长度

Dans Oralce, position Elle peut prendre une valeur de 0, mais dans DB2, une erreur sera signalée si la valeur est 0

Dans Oracle, notre longueur peut être supérieure ou égale à la longueur de la chaîne de caractères, mais le traitement de la fonction elle-même est basé sur votre La longueur de la position de départ à la fin de la chaîne de caractères est traitée et elle ne sera pas déterminée par la longueur que vous avez donnée. C'est l'équivalent d'Oracle. faire l'identification de l'exactitude pour nous et traiter la longueur excédentaire.

Dans DB2, si la longueur de length est supérieure à la longueur entre la position de départ et la position de fin, la base de données nous signalera uniquement une erreur et n'effectuera pas les résultats souhaités comme Oracle.

f. Différences d'utilisation des fonctions rownum, etc. :

la fonction rownum n'est pas prise en charge dans DB2 ;

Si la pagination JDBC est utilisée, veuillez noter que rownum n'est pas pris en charge dans DB2, comme dans DB2 ; masa_area table Obtenez les 10 enregistrements avec le plus petit Area_id. Les déclarations sont les suivantes. Faites attention à la méthode d'écriture de l'alias t ici

ORACLE:
select t.* from (select rownum as r1 ,masa_area.* from masa_area order by area_id) t where t.r1<=10

DB2: 
select t.* from (select rownumber() over() as r1 ,masa_area.* from masa_area order by area_id) t where t.r1<=10

Tutoriel recommandé : "Tutorial Oracle"

.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn