ホームページ  >  記事  >  オラクルとサイベースの違いは何ですか

オラクルとサイベースの違いは何ですか

DDD
DDDオリジナル
2023-06-01 13:46:241507ブラウズ

Oracle と sybase の違いは次のとおりです: 1. SQL 構文に一貫性がない、2. 長すぎるフィールドの後処理メカニズムが異なる、Sybase の処理メカニズムは自動切り捨てですが、Oracle には自動切り捨て機能がありません。長すぎる文字を入力したときのメカニズム、3、中国語フィールドのバイト長が不一致、Sybase データベース 1 中国語が 2 バイトを占有、Oracle データベース 1 中国語が 3 バイトを占有、4. 文字型変換、5. Null 値の読み取り結果が不一致、6.クエリ ステートメントの出力 デフォルトの並べ替えは一貫性がありません。7. 日付形式は一貫性がありません。

オラクルとサイベースの違いは何ですか

# このチュートリアルのオペレーティング システム: Windows 10 システム、Dell G3 コンピューター。

oracle と sybase の違いは次のとおりです:

(1) 一貫性のない SQL 構文

1. 異なる文字列処理関数: たとえば、Sybase はsubstring ( )、oracle は substr(); システム時間を取得し、Oracle は sysdate、Sybase は getdate() です。

2. 複数テーブル結合の構文は異なります。

(2) 長すぎるフィールドに対するさまざまな後処理メカニズム

データベースで定義されたフィールド長を超える入力の場合、Sybase の処理メカニズムは自動的に切り詰められます。トランザクションは成功しました; Oracle 文字を使用する場合は自動切り捨てメカニズムがないため、トランザクション エラーは成功しません。この異なる長すぎる文字入力処理メカニズムにより、大量の異常な履歴データが Sybase では成功し、Oracle トランザクションでは失敗します。長すぎるフィールドの入力ソースには、(1) ホストからシステム データベースへの入力データ、(2) システム自身のページのフロントエンドで文字長が制御されず、長すぎるデータが入力される、などが含まれます。 ; (3) システム自身のプログラムに長すぎる関数名があり、ログ テーブルにエラーが報告される; (4) 関連するシステムが長すぎるフィールドを入力する。この不一致によって引き起こされる問題は、数百件の改修トランザクションを伴うこの移行で最も広範囲に及ぶものの 1 つです。その後、長すぎるフィールドの問題を受けて、プロジェクトでの協議を経て、トランザクション関連フィールドの再編、テストケースの補充、特殊テストの実施、重要な外部システムから入力されたフィールドを逐次比較・検査することが決定されました。

(3) 中国語フィールドのバイト長が矛盾しています

1 Sybase データベースでは中国語の文字が 2 バイトを占め、Oracle データベースでは 1 つの中国語の文字が 3 バイトを占めます。たとえば、一部の入力フィールドは に移行されます。データベースの中国語フィールドの長さを前後で拡張しないと、実際の業務で不整合が発生します。例: システムの入力ページで、最初のバージョンのテスト中に、カスタム備考のフィールド長 (中国語を入力できる) を開発が拡張しなかったため、データベースの前後でカスタム備考の内容に不一致が発生しました。上書きによる移行です。業務分野とサポートされる入力タイプ(中国語が含まれるかどうか)を整理することに重点を置く必要があります。

(4) 文字型変換

Sybase と Oracle は、文字型ごとに異なる処理メカニズムを備えています。char 文字型処理メカニズムを例に挙げると、履歴データには長さ 1 のデータがあります。 Sybase のデータ「6」は、Oracle に移行すると、値が自動的にスペースで埋められて「6」に変更され、プログラム ロジック エラーが発生します。開発者は当初、trim を使用してプログラム内のスペースをフィルタリングし、次に char 型を varchar 型に一律に変更しました。

(5) Null 値の読み取り結果に一貫性がない

Sybase と Oracle では、Null 値の処理メカニズムが異なります。たとえば、長さが 0 の Null 値 '' の場合、Sybase はそれを長さ 1 スペース: ''。後でこのフィールドのメッセージをクエリすると、このフィールドは長さ 1 のスペースになります。Oracle はそれを null として保存します。後でこのフィールドのメッセージをクエリすると、このフィールドが取得されます。 NULL として指定すると、フィールドが 1 つ減ります。

(6) クエリ ステートメントの出力のデフォルトの順序が一致しない

例: 詳細なトランザクションの場合、2 つのデータベースの出力順序が一致せず、同時に、クエリ ステートメントの出力順序も一致しません。処理されるタスクも矛盾しています。

(7) 日付形式が一致していません

Sybase と Oracle の日付処理形式が一致していません。例: Oracle の日時形式は to_date('2020-05-1012:00:00','yyyy-mm-ddHH24:mi:ss')、Sybaseddatetime 形式は '05/10/202012:00:00AM' です。

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

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