Oracle Database のシノニムに対する操作
Oracle Database アダプターを使用すると、シノニムに対する操作を実行できます。 シノニムは、データベース オブジェクト (テーブル、ビュー、ストアド プロシージャ、関数、パッケージなど) の別名またはフレンドリ名です。 Oracle のシノニムの詳細については、「」を参照してください https://go.microsoft.com/fwlink/?LinkId=138058。
シノニムを使用する利点
シノニムは、次のシナリオで役立ちます。
異なるスキーマの操作: 異なるスキーマを操作していて、スキーマ間でオブジェクトにアクセスする必要がある場合は、異なる SQL ステートメントを使用してそれらのオブジェクトにアクセスする必要があります。 スキーマ内のオブジェクトのシノニムを作成し、SQL ステートメントでシノニムを使用してオブジェクトにアクセスできます。 別のスキーマの基になるオブジェクトにアクセスする必要がある場合は、シノニムの定義を変更して、別のスキーマ内のオブジェクトを指すようにします。 したがって、シノニムに基づくアプリケーションは、SQL ステートメントで変更を加えることなく引き続き機能します。
たとえば、テスト環境と運用環境で同じスキーマが 2 つあるとします。"Test" と "Prod" です。 "Test" スキーマの "Employee" というテーブルにアクセスするには、SQL ステートメントで または
Employee
("Test" が既定のスキーマの場合) を使用Test.Employee
する必要があります。 運用スキーマで "Employee" テーブルを使用する場合は、SQL ステートメントで またはEmployee
(既定のスキーマを "Prod" に変更する) を使用Prod.Employee
する必要があります。 この問題を回避するには、"Test.Employee" テーブルのシノニム ("EMP" など) を作成し、SQL ステートメントで使用します。 "Prod.Employee" テーブルに対して操作を実行する必要がある場合は常に、"EMP" シノニムの定義を変更して"Prod.Employee" テーブルを指します。 これにより、異なるスキーマ内のオブジェクトに対して操作を実行するために SQL ステートメントを変更する必要がないようにします。基になるオブジェクトの変更: シノニムは、操作を実行している基になるオブジェクトの名前または場所の変更からあなたを区別します。 シノニム定義は、基になるオブジェクトの名前または場所の変更に対応するように変更できます。
たとえば、いずれかのストアド プロシージャでテーブルを使用しているとします。 ここで、テーブル名が変更された場合、またはテーブルが他の場所に移動された場合、ストアド プロシージャは動作を停止します。 これを回避するには、ストアド プロシージャのテーブルのシノニムを使用し、テーブルの名前または場所に変更がある場合はシノニム定義を更新します。
簡略化されたセキュリティで保護されたアクセス: 分散環境では、スキーマ名とオブジェクト名を使用して、正しいオブジェクトに確実にアクセスする必要があります。 さらに、ユーザーがターゲット オブジェクトに対して必要な特権を持っていることを確認する必要もあります。 これを簡略化するために、オブジェクトへの完全修飾パスを持つシノニムを作成し、シノニムに対する適切な特権を付与することで、オブジェクトに単純な名前を割り当てることができます。
アダプターでのシノニムの操作
Oracle Database アダプターは、次の目的で Oracle のシノニムを公開します。
テーブル
ビュー
ストアド プロシージャ
関数
パッケージ
これらの各成果物のシノニムは、アダプター サービス アドインの使用、アダプター メタデータの追加ウィザード、およびアダプター サービス参照プラグインの各基になる成果物と共に公開されます。 たとえば、スキーマの下の [テーブル ] ノードには、テーブルのすべてのシノニムがスキーマ内のデータベース テーブルと共に表示され、スキーマの下の [ビュー ] ノードには、ビューのすべてのシノニムとスキーマ内のデータベース ビューが表示されます。
テーブルとビューで作成されたシノニムの場合、基になるテーブルとビューの場合と同じ操作が公開されます。 たとえば、基になるテーブルとビューに LOB 列が含まれている場合、それらのテーブルとビューのシノニムでは、ReadLOB 操作と UpdateLOB 操作も公開されます。
ストアド プロシージャ、関数、およびパッケージで作成されたシノニムの場合、シノニムは、スキーマ内の基になる各ストアド プロシージャ、関数、およびパッケージと共に操作として公開されます。
Note
Oracle Database アダプターでは、ローカルシノニムのみがサポートされます。 これは、ローカル サーバー上の成果物を対象とするアダプターでサポートされているシノニムのみを意味します。
さらに、シノニムのメッセージ アクションは、アクションが実行される成果物名を除き、基になるオブジェクトと同じです。 たとえば、SCOTT スキーマのテーブルに対する Select 操作のメッセージ アクションは、 です http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/[TABLE_NAME]/Select
。 SCOTT スキーマ内の同じテーブルのシノニムに対して Select 操作を実行する場合、メッセージ アクションは になります。 http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/[SYNONYM_NAME]/Select
アダプターのシノニムに対して操作を呼び出すと、アダプターは Oracle データベースのシノニムを呼び出して操作を実行します。 ただし、アダプターはシノニム定義の基になるオブジェクト名を使用してメタデータをフェッチします。
シノニムは、通常の送信操作、複合操作、ポーリングで使用できます。
Note
他のオブジェクトと同様に、[アダプター サービス アドインの使用] または [アダプター サービス参照プラグインの追加] でシノニムを検索できます。 ただし、パッケージ内のプロシージャに対して行うことができるように、スキップ レベル ノードからシノニム パッケージ内のプロシージャを検索することはできません。 アダプターでの操作の検索の詳細については、「 Oracle Database 操作のメタデータの参照、検索、および取得」を参照してください。