プライマリ・コンテンツに移動
Oracle® Databaseアップグレード・ガイド
12cリリース1 (12.1)
B71306-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 Oracle Databaseのアップグレード後のアプリケーションのアップグレード

新しいリリースのOracle Databaseにアップグレードすると、多くの新機能および拡張機能を使用できます。 新機能を最大限に利用する場合は、新しいリリースで実行されているアプリケーションをアップグレードする必要があります。

この章の内容は次のとおりです。

5.1 新しいOracle Databaseリリースでのアプリケーションのアップグレードの概要

新しいOracle Databaseの新しいリリースで実行される既存のアプリケーションは以前のリリースと同様に機能し、同等以上のパフォーマンスを得ることができます。Oracle Databaseの新しいリリースで使用可能になった機能を使用しない既存のアプリケーションは、変更する必要がありません。

Oracle Databaseの新しいリリースにアップグレードすると、多くの新機能および拡張機能を使用できます。機能やファンクションが追加された機能がある一方、パフォーマンスが向上した機能もあります。アプリケーションをアップグレードする前に、これらの新機能を確認して、どの機能を使用するかを判断する必要があります。


関連項目:

  • Oracle Database 12cで使用可能な新機能については、『Oracle Database新機能ガイド』を参照してください。

  • Oracle Database 12cの個々のデータベース製品またはオプションの使用方法に関する情報は、Oracle Technology Network (OTN) (http://www.oracle.com/technetwork/indexes/documentation/)を参照してください。


5.2 Oracle Databaseの異なるリリースでのアプリケーションの互換性の問題

Oracle Databaseの異なるリリース間には、アプリケーションに影響を与えかねない互換性の問題がある場合があります。これらの互換性の問題は、Oracle Databaseの様々なリリースにおける相違によるものです。また、Oracle Databaseのリリースが新しくなるたびに、Oracleの新しい予約語が追加され、初期化パラメータおよびデータ・ディクショナリが変更されている場合があります。

Oracle Databaseソフトウェアを新しいリリースにアップグレードする場合は、アプリケーションでOracleの予約語が使用されていないか、アプリケーションにデータベースの初期化パラメータとの互換性があるか、アプリケーションにデータベースのデータ・ディクショナリとの互換性があるかを確認してください。新しいリリースのOracle Databaseソフトウェアでは、特定のリリースのオペレーティング・システムまたは特定のパッチ・セットの適用が必要な場合があります。


関連項目:

  • 初期化パラメータおよびデータ・ディクショナリの変更の詳細は、付録A「以前のリリースのOracle Databaseの変更点」を参照してください。

  • Oracleの予約語の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • オペレーティング・システムの要件の詳細は、ご使用のオペレーティング・システム固有のOracleドキュメント(『Oracle Databaseインストレーション・ガイド』)を参照してください。


5.3 Oracle DatabaseでのプリコンパイラおよびOCIアプリケーションのアップグレード

プリコンパイラとOracle Call Interface (OCI)アプリケーションのアップグレード・パスは非常に似ています。

  • 本番環境をアップグレードする前に、テスト環境を作成します。

  • テスト環境に、アップグレードされたアプリケーションおよび新しいOracle Databaseソフトウェアを含めてください。

  • テスト環境で、アプリケーションの現実的なテストが行われることを確認します。


関連項目:


5.4 Oracle Databaseでのソフトウェアのアップグレードおよびクライアントとサーバー構成

プリコンパイラおよびOracle Call Interface (OCI)アプリケーションのアップグレードのオプションを理解するには、まず、実行するソフトウェアのアップグレードのタイプとクライアントおよびサーバー構成を理解する必要があります。

5.4.1 Oracle Databaseのクライアントおよびサーバー・ソフトウェアのソフトウェア・アップグレードのタイプ

Oracle Databaseのクライアントおよびサーバー・ソフトウェアでは、Oracle Databaseのメジャー・リリースとOracle Databaseのメンテナンス・リリースの2つのタイプのアップグレードを行うことができます。

5.4.1.1 Oracle Databaseのメジャー・リリースのアップグレード

このアップグレードは、リリース番号の最初の数字を変更します。たとえば、Oracle Database 11gからOracle Database 12cへのアップグレードは、データベースのメジャー・リリースのアップグレードです。

5.4.1.2 Oracle Databaseのメンテナンス・リリースのアップグレード

このアップグレードは、リリース番号の2番目の数字を変更します。たとえば、Oracle Database 11gリリース1 (11.1)からOracle Database 11gリリース2 (11.2)へのアップグレードは、データベースのメンテナンス・リリースのアップグレードです。

5.4.2 Oracle Databaseで使用可能なクライアントおよびサーバーの構成

プリコンパイラおよびOCIアプリケーションはクライアント/サーバー環境のクライアントで実行されます(ここでのサーバーは、Oracle Databaseサーバーです)。ご使用の環境で、次の1つ以上のクライアント/サーバー構成を使用できます。

5.4.2.1 異なるコンピュータ上に存在するOracle Databaseクライアントおよびサーバー

クライアント・ソフトウェアおよびサーバー・ソフトウェアが異なるコンピュータにあり、それぞれがネットワークで接続されています。クライアント環境とサーバー環境は独立しています。

5.4.2.2 同じコンピュータ上の異なるOracleロケーションに存在するOracle Databaseクライアントおよびサーバー

クライアント・ソフトウェアおよびサーバー・ソフトウェアは同じコンピュータ上にありますが、異なるOracleホーム・ディレクトリにインストールされています。クライアント環境とサーバー環境は独立しています。

5.4.2.3 同じOracleロケーション上に存在するOracle Databaseクライアントおよびサーバー

クライアント・ソフトウェアおよびサーバー・ソフトウェアが同じコンピュータ上の同じOracleホームにインストールされています。この場合、サーバー・ソフトウェアをアップグレードすると、クライアント・ソフトウェアもアップグレードされます。


関連項目:

クライアント/サーバー環境の詳細は、『Oracle Database概要』を参照してください

5.5 Oracle Databaseクライアントまたはサーバー・ソフトウェアをアップグレードする場合のアプリケーションの互換性規則

Oracle Databaseクライアントまたはサーバー・ソフトウェアのアップグレード時に、互換性規則が適用されます。この規則は、実行するソフトウェア・アップグレードのタイプおよびクライアント/サーバー構成のタイプに基づきます。

この項では、アップグレードのタイプに応じた互換性規則について説明します。

5.5.1 Oracle Databaseサーバー・ソフトウェアのアップグレードに対する規則

Oracle Databaseのサーバー・ソフトウェアのアップグレード時には、データベース環境に応じて様々な規則が適用されます。

5.5.1.1 クライアント環境を変更しない場合、再リンクは不要

クライアントとサーバーが異なるコンピュータにあるか、または同じコンピュータの異なるOracleホーム・ディレクトリにあるときに、クライアント・ソフトウェアを変更しないでOracle Databaseサーバー・ソフトウェアをアップグレードする場合は、アプリケーションをプリコンパイル、コンパイルまたは再リンクする必要はありません。このような場合、クライアント・ソフトウェアはサーバー・ソフトウェアから独立しており、サーバーに対し継続して機能します。

ただし、アプリケーションがOracle Databaseサーバーと同じOracleホームを使用している場合は、サーバー・ソフトウェアをアップグレードするとクライアント・ソフトウェアもアップグレードされます。この場合、「Oracle Databaseクライアント・ソフトウェアのアップグレード」の規則に従う必要があります。


注意:

Oracle Databaseサーバー・ソフトウェアと、プリコンパイラまたはOCIクライアント・ソフトウェア用に同じOracleホームを使用している場合、新しいプリコンパイラまたはOCIクライアント・ソフトウェアはインストールしないで、サーバー・ソフトウェアをアップグレードすることができます。この場合、クライアント・ソフトウェアはアップグレードされません。ただし、このような構成はお薦めしません。

5.5.1.2 Oracle Databaseサーバーの新/旧リリースでアプリケーションの実行が可能

データベース・サーバーに対してプリコンパイラまたはOCIアプリケーションを実行する場合、クライアント・ソフトウェア・リリース以上のリリースのデータベース・サーバー・ソフトウェアを使用することをお薦めしますが、この構成が厳密に必要なわけではありません。たとえば、クライアント・ソフトウェアがOracle9iリリース2 (9.2.0.8)である場合、サーバーに対してクライアント上でプリコンパイラ・アプリケーションを実行するには、Oracle9iリリース2 (9.2.0.8)以上のサーバー・ソフトウェアを使用することをお薦めします。

5.5.2 Oracle Databaseクライアント・ソフトウェアのアップグレード

ご使用のクライアント・ソフトウェアをアップグレードして、現行のサーバー・ソフトウェアと一致させることをお薦めします。たとえば、サーバーをOracle Database 12cにアップグレードする場合、クライアント・ソフトウェアもOracle Database 12cにアップグレードすることをお薦めします。サーバー・ソフトウェアとクライアント・ソフトウェアのリリース番号を同じにしておくと、アプリケーションの最大の安定性を得ることができます。また、最新のOracle Databaseクライアント・ソフトウェアには、それまでのリリースにはなかった機能が追加されていたり、パフォーマンスが向上している可能性があります。

アプリケーションのリンク方法に応じて、Oracle Databaseのクライアント・ソフトウェアのアップグレード時に適用される規則が異なります。

5.5.2.1 アプリケーションは、より新しいライブラリにリンクできる

プリコンパイラ・アプリケーションによって生成されたコードは、サーバーのリリース以上のクライアント・ライブラリのリリースにリンクできます。

OCIアプリケーションは、そのアプリケーションが開発されたOCIライブラリのリリース以上のOCIランタイム・ライブラリのリリースとリンクできます。

5.5.2.2 静的にリンクされたアプリケーションを常に再リンクさせる必要がある

静的にリンクされたOCIアプリケーションは、メジャー・リリースおよびマイナー・リリースの両方に再リンクさせる必要がありますが、これは静的にリンクされたOracleのクライアントサイド・ライブラリのコードと、アップグレード後のORACLE_HOMEでのエラー・メッセージとの互換性が失われている可能性があるためです。たとえば、エラー・メッセージにパラメータが追加される更新があった場合、このエラー・メッセージは、静的にリンクされたコードとは非互換になります。

5.5.2.3 動的にリンクされたアプリケーションの再リンク

Oracle Database 10gリリース1(10.1)以上のリリースの動的にリンクされたOCIアプリケーションでは、現行のリリースとの上位互換性が保たれます。つまり、Oracleのクライアントサイド動的ライブラリには、前のバージョンのライブラリとの上位互換性があります。Oracle Universal Installerによって前のバージョンのライブラリへのシンボリック・リンクが作成され、このシンボリック・リンクが現行バージョンのライブラリに解決されます。したがって、前のバージョンのOracleクライアントサイド動的ライブラリと動的にリンクされたアプリケーションは、現行バージョンのOracleクライアントサイド・ライブラリと再リンクしなくても動作します。


注意:

アプリケーションがランタイム・ライブラリの検索パス(Linuxでの-rpathなど)にリンクされていると、リンクされているバージョンのOracleクライアントサイド・ライブラリを使用して引き続き実行される場合があります。現行バージョンのOracleクライアントサイド・ライブラリを使用して実行するには、アプリケーションを再リンクする必要があります。

アプリケーションが遅延オプション(静的にリンクされているアプリケーションなど)にリンクされている場合は、再リンクする必要があります。

Oracle Database 10gリリース1 (10.1)より前のリリースのアプリケーションを使用している場合は、再リンクする必要があります。


5.6 OracleプリコンパイラおよびOCIアプリケーションのアップグレードのオプション

Oracle Databaseの新しいリリース上で実行するプリコンパイラおよびOracle Call Interface (OCI)アプリケーションのアップグレード用に、いくつかのオプションが提供されています。

アップグレードのオプションは、難易度が高く、考えられるメリットが大きくなる順序に記述されています。つまり、選択肢1は最も簡単ですが、考えられるメリットは最も小さくなり、選択肢3は最も難しい方法ですが、考えられるメリットは最も大きくなります。

5.6.1 オプション1: アプリケーションを変更しない

アプリケーションおよびその環境を変更しません。アプリケーションを再リンク、プリコンパイルまたはコンパイルせず、また、アプリケーション・コードを変更しません。アプリケーションは、新しいOracle Database 12cリリースで引き続き動作します。この選択肢では、アプリケーションのOracleホーム環境をアップグレードしないでください。アプリケーションは変更しなくても、Oracle Database 12cサーバーで引き続き使用できます。この選択肢の主なメリットは、単純で簡単であることです。さらに、この選択肢では、クライアント・コンピュータをアップグレードする必要がないため、管理の必要性が最も少なくなります。多くのクライアント・コンピュータがある場合は、すべてのコンピュータのアップグレードに費やす管理コストを削減することが大変重要になります。

このオプションの主なデメリットは、Oracle Databaseの新しいリリースで使用可能な機能をアプリケーションで使用できないことです。また、期待できる新しいOracle Database 12cのすべてのパフォーマンス上のメリットをアプリケーションで活用することができません。

5.6.2 オプション2: 新しいソフトウェアを使用してアプリケーションをプリコンパイルまたはコンパイルする

Oracle Databaseの新しいリリースを使用して、プリコンパイルまたはコンパイルし、次にアプリケーションを再リンクします。APIが非推奨になったか、または変更されている場合は、アプリケーション・コードを変更する必要があります。新しいリリースのOracle Databaseソフトウェアにアップグレードする場合、APIが非推奨になったか変更されたために必要になったコード変更を行った後、新しいソフトウェアを使用してアプリケーションをプリコンパイルまたはコンパイルする必要があります。

この選択肢では、各クライアント・コンピュータに新しいOracle Databaseクライアント・ソフトウェアをインストールする必要があります。クライアントの数にかかわらず、必要なアプリケーションのプリコンパイルまたはコンパイルおよび再リンクは1回のみです。

再コンパイルすることによって、アプリケーション・コードの構文チェックを実行します。新しいOracleソフトウェアを使用してプリコンパイルまたはコンパイルすると、Oracleソフトウェアの以前のリリースでは検出されなかったアプリケーション・コードのいくつかの問題が、検出される場合があります。したがって、新しいソフトウェアを使用したプリコンパイルまたはコンパイルは、以前に検出されなかった可能性があるアプリケーション・コードの問題の検出および解決に役立ちます。

また、アプリケーションは新しいOracleソフトウェアで動作するため、再コンパイルすることによって、アプリケーションの最大の安定性を得ることができます。さらに、使用可能な最新のツール製品および機能を使用して、ご使用の環境で新しい開発を行うことができます。さらに、再コンパイルおよび再リンクの実行後のみ、新しいOracleソフトウェアで得られるパフォーマンスの向上を得ることができます。

5.6.3 オプション3: アプリケーション・コードを変更して、新しいOracle Databaseの機能を使用する

Oracle Database 12cの新しい機能を使用するために、アプリケーション・コードを変更します。コードをプリコンパイルまたはコンパイルし、再リンクさせます。アプリケーションのコードを変更することで、Oracle Databaseの新しい機能を利用できます。この選択肢は最も難しい方法ですが、考えられるメリットも最大です。この選択肢では、「選択肢2: 新しいソフトウェアを使用してアプリケーションをプリコンパイルまたはコンパイルする」で説明したすべてのメリットを実現できます。また、アプリケーションを変更することにより、Oracle Databaseの新しいリリースで得られるパフォーマンスおよびスケーラビリティのメリットを活用できます。さらに、新しいリリースでのみ使用できる新機能を、アプリケーションに追加できます。

『Oracle Database新機能ガイド』を読んで、新しいOracle Database 12cの機能を理解してください。使用する機能の実装方法については、ご使用の開発環境のOracleマニュアルを参照してください。プリコンパイラの詳細は、『Pro*C/C++プログラマーズ・ガイド』および『Pro*COBOLプログラマーズ・ガイド』を参照してください。OCIの詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。

使用する新機能を決定したら、これらの機能を使用するためにアプリケーションのコードを変更します。ご使用の開発環境に基づいて、次の項の該当する指示に従ってください。

5.6.3.1 プリコンパイラ・アプリケーションの変更

プリコンパイラ・アプリケーションを変更してOracle Database 12cの機能を使用するには、次の手順を実行します。

  1. Oracle Database 12cの新しい機能を利用する場合は、これらの新機能のコードを既存のアプリケーションに取り込みます。

  2. Oracleプリコンパイラを使用して、アプリケーションをプリコンパイルします。

  3. アプリケーションをコンパイルします。

  4. プリコンパイラに付属する新しいOracle Database 12cのランタイム・ライブラリ(SQLLIB)を、アプリケーションと再リンクさせます。

5.6.3.2 OCIアプリケーションの変更

OCIアプリケーションを変更してOracle Database 12cの機能を使用するには、次の手順を実行します。

  1. 新しいOracle Database 12cのOCIコールを既存のアプリケーションに取り込みます。

  2. アプリケーションをコンパイルします。

  3. 新しいOracle Database 12cのランタイム・ライブラリを、アプリケーションと再リンクさせます。

5.7 Oracle Databaseのアップグレード後のSQL*PlusスクリプトおよびPL/SQLのアップグレード

新しいOracle Databaseリリースの機能およびファンクションを使用するには、新しいOracle Databaseリリースの構文を使用するように既存のSQLスクリプトを変更します。既存のSQLスクリプトで新しいOracle Databaseリリースの機能およびファンクションを使用しない場合は、既存のSQLスクリプトはそのまま新しいOracle Databaseリリースで実行されるため、変更は不要です。

新しいOracle Databaseリリースではエラー確認機能が強化されているため、実行時ではなくコンパイル時にエラーを識別できる場合があります。

5.7.1 数値リテラルの評価

数値リテラルの評価方法が変更され、リテラルを使用する数値計算の場合は、1つ以上の定数で小数第1位に小数点を指定することが必要になりました。これは、Oracle Database 10gリリース1 (10.1)以上のリリースのOracle Databaseリリースでは、一部の式でINTEGER演算(有効桁は約9桁)が使用されますが、Oracle9iリリース2 (9.2)ではNUMBER演算(有効桁数は約38桁)が使用されるためです。したがって、有効桁数が9桁を超える計算結果を扱う場合、数値オーバーフローのエラーを回避するには、1つのリテラルが小数形式であることが必要です。たとえば、Oracle Database 10gでは、次に示す例のv1の計算で数値オーバーフローのエラーが発生します。

DECLARE
  v1 NUMBER(38);
BEGIN
  v1 := 256*256*256*256;
  DBMS_OUTPUT.PUT_LINE(v1);
END;
/

このエラーに対する解決策として、1つの数値リテラルを次のように小数(256.0)として指定します。

DECLARE
  v1 NUMBER(38);
BEGIN
  v1 := 256*256*256*256.0;
  DBMS_OUTPUT.PUT_LINE(v1);
END;
/

関連項目:

  • SQL*Plusの新機能の詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』のSQL*Plusの新機能に関する項を参照してください。

  • SQLスクリプトのアップグレードの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。


5.8 Oracle FormsまたはOracle Developerアプリケーションのアップグレードの概要

Formsアプリケーションは、Oracle9i、Oracle Database 10gおよびOracle Database 11gで同様に動作します。Oracle Database 12cでは、『Oracle Database開発ガイド』の題名が『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』に変更されています。

アプリケーション開発用に説明されている新しい機能および変更を確認してください。また、『Oracle Database新機能ガイド』で説明されている新機能を確認して、Oracle Database 12cの機能がアプリケーションに有効か、アプリケーションに影響を与えるかどうかを判断してください。