2

私の仕事では Oracle 10G を使用しており、Apex のインストールを計画しています。それまでの間、私は Oracle XE をダウンロードし、その上で APEX を独学しました。ただし、XE データベースで作成したユーザー/テーブルスペースにしかアクセスできません。私がやりたいことは、XE の Apex を使用して、私の作業の実稼働データベースのユーザー/テーブルスペースにアクセスすることです。

私の同僚は、ワークステーションがサーバーに接続されているのでこれが可能であり、適切な DAD をセットアップするなどして、XE の Apex から 10g のデータベースへのアクセスを構成する方法があるはずだと言っています。

これを許可する Apex ユーザーインターフェースには何も表示されません。Apex ドキュメントのすべての単語を読みましたが、何も登録されていません。

XE は組み込みの PL/SQL ゲートウェイを使用しますが、10/11G は Apex リスナーまたは HTTP サーバーと mod_plsql プラグインを使用します。

ありがとうございました、

マシュー・モイセン

4

1 に答える 1

3

標準ポート 1521 のリスナー アクセスを保存して、データをホストしている実際のデータベースにアクセスできない場所でこれを行ったことがあります。当時、Apex は組織にとって十分に新しいものであり、DBA もデータベース サーバーを Web サーバー ゲートウェイとして使用することをタブー視していました。次の手順で、「中間層」またはアプリ サーバーとしてインストールされた APEX でデータベース インスタンスを使用できます。

  1. dblink を介してリモートでアクセスできる 10g データベースにアカウントをセットアップします。
  2. XE がインストールされたワークステーションで 10g データベース テーブルへの dblinks をセットアップし、(1) でセットアップした 10g データベースのアカウントと接続情報を使用します。TNS 名ファイルを更新するか、dblink 内でホスト/ネットワーク設定を明示的に示す必要がある場合があることに注意してください。
  3. apex プロジェクトのコーディングを健全かつ単純にするために、すべての dblinked オブジェクト (つまり、table1@dblink の table1) の同義語を設定して、apex コードで dblink を直接参照しないようにします。これを守れば、あとで変更するのが簡単になります。

それでおしまい。1 つの但し書きとして、dblink を使用している場合、LOB は APEX 駆動型 DML 操作のすぐに使える機能では機能しないことを知っておく必要があります。これは、最新バージョンでは変更されている可能性があります。考えられる回避策の 1 つは、LOB データを DML 操作を行う入力パラメーターとして渡すストアド プロシージャを使用することです。

それ以外の場合、このアプローチはうまく機能します。このモデルを実装した場所には、実際のデータ ソースとは別に APEX をホストするサーバーを使用する、いくつかの運用レベルのアプリ、テストおよび開発層があります。Oracle Standard Edition One (サポート用) を使用しましたが、Oracle XE も同様に動作するはずです。これは、APEX がいずれかの Oracle バージョン間で共通のプラットフォームであるためです。

于 2012-12-05T21:27:57.890 に答える