ホームページ  >  記事  >  データベース  >  OracleとDB2の違いは何ですか

OracleとDB2の違いは何ですか

青灯夜游
青灯夜游オリジナル
2022-01-07 17:15:5911205ブラウズ

相違点: 1. Oracle は「create or replace」ステートメントをサポートしていますが、DB2 はサポートしていません; 2. ORACLE の DATE 型には時、分、秒がありますが、DB2 の DATE は年、月のみです。および日; 3. SUBSTR ( ) 関数の 2 番目のパラメーターは値 0 を取ることができますが、DB2 ではそうではありません。

OracleとDB2の違いは何ですか

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle と DB2 は 2 つの異なるデータベースです。

Oracle:

Oracle は、Oracle Corporation のリレーショナル データベース管理システムです。

ORACLE データベースシステムは、アメリカの ORACLE 社 (Oracle) が提供する分散データベースを核としたソフトウェア製品群で、現在最も普及しているクライアント/サーバー (CLIENT/SERVER) または B/S アーキテクチャです。 . データベースの一つ。たとえば、SilverStream はデータベースをベースにした一種のミドルウェアです。 ORACLEデータベースは現在世界で最も広く使われているデータベース管理システムであり、一般的なデータベースシステムとしては完全なデータ管理機能を持ち、リレーショナルデータベースとしては完全なリレーショナル製品であり、分散データベースとしては分散処理機能を実現しています。 。

DB2:

は IBM DB2 を表します。米国IBMが開発したリレーショナルデータベース管理システムで、主な動作環境はUNIX(IBM独自のAIXを含む)、Linux、IBM i(旧OS/400)、z/OS、Windowsサーバー版などです。

DB2 は主に大規模なアプリケーション システムで使用され、優れた拡張性を備え、メインフレームからシングル ユーザー環境まであらゆる環境をサポートし、一般的なサーバー オペレーティング システムのすべてのプラットフォームで使用できます。 DB2 は、プラットフォームに依存しない基本機能と SQL コマンドを使用して、小規模から大規模のアプリケーションに高レベルのデータ利用、整合性、セキュリティ、リカバリ可能性、および実行機能を提供します。 DB2 はデータ分類テクノロジーを採用しており、これによりメインフレーム データを LAN データベース サーバーに簡単にダウンロードできるようになり、クライアント/サーバー ユーザーと LAN ベースのアプリケーションがメインフレーム データにアクセスできるようになり、データベースのローカリゼーションとリモート接続が透過的になります。 DB2 は非常に完全なクエリ オプティマイザーを備えていることで知られており、その外部接続によりクエリのパフォーマンスが向上し、マルチタスクの並列クエリがサポートされます。 DB2 は優れたネットワーク サポート機能を備えており、各サブシステムは数十万の分散ユーザーに接続し、同時に数千のアクティブ スレッドをアクティブにすることができ、特に大規模な分散アプリケーション システムに適しています。

#oracle と db2 の違い

データ型変換関数

OracleとDB2の違いは何ですか

a. サブクエリのエイリアス (使用可能なもの)

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. インデックスの作成時 (フィールドの置換)

Oracle はサポートしますが、DB2 はサポートしません

DB2 では create または replace ステートメントは無効です

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

c.DATE データ型の違い:

ORACLE の DATE タイプには時、分、秒が含まれますが、DB2 では DATE は年、月、日のみです (「2007-04-28」など)。 DB2 では、記録時間、分、秒は TIMESTAMP タイプである必要があります。 SQLで値を渡す場合、DBは日付型になりますので、画面内に年月日(yyyy-MM-dd)しかない場合、データベースを操作する際は値を渡すときに注意してください:

①文字列を使用して値を渡します

② Date を使用して値を渡します (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.Getシステム日付:

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

e.Substr の使用法:

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

Oralce では、位置は値 0 を取ることができます。ただし、DB2 では、値が 0 の場合、エラーが報告されます。

Oracle では、長さは文字列の長さ以上にすることができますが、関数自体は処理されます文字列の開始位置から終わりまでに基づいて処理されます。位置の長さは処理されますが、指定した長さによって決定されることはありません。これは、Oracle が正確さを識別し、余分な長さを処理するのと同じです。

DB2 では、length の長さが開始位置と終了位置の間の長さよりも大きい場合、データベースはエラーを報告するだけで、Oracle のように必要な結果は実行されません。

f. 関数 rownum などの使用法の違い:

関数 rownum は DB2 ではサポートされていません;

JDBC ページングを使用する場合、DB2 では rownum がサポートされていないことに注意してください 例えば、masa_area テーブルから area_id が最も小さいレコードを 10 件取得します 文は以下の通りです ここでのエイリアスに注意してください 記述方法

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

推奨チュートリアル: 「

Oracle チュートリアル >>

以上がOracleとDB2の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。