mysql|oracle|プログラム
著者: Yu Feng
多くのアプリケーション プロジェクトがあり、最初は基本的に MYSQL データベースを使用してさまざまな機能要件を実現できますが、アプリケーション ユーザーの数とデータ量が増加するにつれて、MYSQL は徐々に負荷が高くなります。遅い、またはダウンタイムが発生するため、データを MYSQL から ORACLE に移行する必要があり、それに応じてアプリケーションもいくつかの変更を行う必要があります。以下に注意点をまとめてみましたので、皆様の参考になれば幸いです。
1. 自動増加データ型処理
MYSQL には自動増加データ型があり、レコード挿入時にこのフィールドを操作する必要はなく、データ値が自動的に取得されます。 ORACLE には自動増加するデータ型がありません。レコードを挿入するときは、このフィールドにシーケンス番号の次の値を割り当てる必要があります。
CREATE SEQUENCE シーケンス番号の名前 (できればテーブル名 + シーケンス番号タグ) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
シーケンスが自動的に増加する場合、最大値はフィールドの長さによって決まります。番号は NUMBER(6) で定義されており、最大値は 999999 です
INSERT ステートメントによって挿入されるこのフィールドの値は次のとおりです: シリアル番号の名前。NEXTVAL
2. 一重引用符の処理
二重引用符を使用して囲むことができます。 MYSQL では文字列ですが、ORACLE では一重引用符のみを使用できます。 文字列を引用符で囲みます。文字列を挿入または変更する前に、一重引用符を置換する必要があります。つまり、出現する一重引用符をすべて 2 つの一重引用符に置き換えます。
3. ページめくり SQL ステートメントの処理
MYSQL は、LIMIT を使用して位置を開始し、結果の位置を特定することもできます。セット。 ORACLE のページめくり SQL ステートメントの処理はさらに面倒です。各結果セットには、その位置を示す ROWNUM フィールドが 1 つだけあり、ROWNUM80 は使用できません。
以下は、分析後の 2 つの優れた ORACLE ページング SQL ステートメントです (ID は一意のキーワードのフィールド名です):
ステートメント 1:
SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT) ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件 1 ORDER BY 条件 2) WHERE NUMROW > 80 AND NUMROW
ステートメント 2:
SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (select [FIELD_NAME,...] FROM TABLE_NAME WHERE 条件 1 ORDER BY 条件 2) c) WHERE NUMROW > 80 AND NUMROW
4. 長い文字列の処理
長い文字列の処理にもORACLEの特徴があります。 INSERT および UPDATE 中に操作可能な文字列の最大長は 4000 バイト以下です。これより長い文字列を挿入する場合は、フィールドに CLOB タイプを使用し、ORACLE に付属の DBMS_LOB パッケージからメソッドを借用することを検討してください。変更されたレコードを挿入する前に、空でないことと長さを判断する必要があります。空にすることができないフィールド値や長さを超えるフィールド値は警告を発行し、最後の操作に戻る必要があります。
5. 日付フィールドの処理
MYSQL の日付フィールドは DATE と TIME に分かれており、ORACLE の日付フィールドには年、月、日、時、分、秒の情報が含まれます。 SYSDATE、秒まで正確、または文字列を使用 日付関数に変換 TO_DATE('2001-08-01','YYYY-MM-DD') 年-月-日 24 時:分:秒の形式 YYYY-MM-DD HH24 : MI: SS TO_DATE() も多数の日付形式があります。ORACLE DOC を参照してください。日付フィールドは文字列関数 TO_CHAR('2001-08-01','YYYY-MM-DD HH24:MI:) に変換されます。 SS')
日付フィールドの数学的演算式には大きな違いがあります。 MYSQL は DATE_FIELD_NAME > SUBDATE (NOW (), INTERVAL 7 DAY) を使用して現在時刻から 7 日間を検索します。
6. NULL 文字の処理null フィールド 空でないフィールドが ORACLE で定義されている場合、空のコンテンツは許可されません。 MYSQL の NOT NULL に従って ORACLE テーブル構造を定義すると、データのインポート時にエラーが発生します。そのため、データをインポートする際には、NULL文字であるかどうかを判断し、NULL文字である場合は空白文字に変更する必要があります。
7. 文字列のあいまい比較
MYSQL では '% string%' のようなフィールド名が使用されますが、ORACLE では '% string%' のようなフィールド名も使用できますが、この方法はインデックスを使用できないため高速ではありません。文字列比較関数 instr(field name,'string')>0 を使用すると、より正確な検索結果が得られます。
8. プログラムや関数では、データベースの操作作業が完了した後の結果セットとポインタの解放に注意してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい
