部分的な解決策があります-次のFormsPL/ SQLコードは、アプリケーションサーバーのIPアドレスを返します:-
declare
v_ip_address varchar2(20);
--
begin
select SYS_CONTEXT('USERENV','IP_ADDRESS') into v_ip_address from dual;
--
end;
この機能の注意点は、データベース機能を使用するため、これを使用するにはフォーム/レポートをデータベースに接続する必要があることです。ただし、データベースサーバーではなく、常にアプリケーションサーバーのIPアドレスを返します。そして、これらが異なるボックスにある場所でテストされています。
SYS_CONTEXTは、コンテキスト名前空間に関連付けられたパラメータの値を返すOracleデータベース関数(9i、10g、および11gで使用可能であることが確認されています)です。組み込みの名前空間USERENVが付属しています。この名前空間には、多くの興味深い有用なパラメーターがあります。詳細については、 http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions165.htm#g1513460を参照してください。
ここで使用されている特定のパラメータ(IP_ADDRESS)は、接続されたクライアントのIPアドレスを返します。これは、データベースの観点からはアプリケーションサーバーです。これは、フォーム/レポートが実際に実行されている場所であるため、必要なものを取得できます:)私はこれをテストしていませんが、これはフォームだけでなくレポートでも機能するはずです。
ポート番号を取得する方法がわかりません。恐れ入りますが、上記がお役に立てば幸いです。
乾杯、
キース