2016-11-18 11 views
3

私が作成したOracle Apex 5アプリケーションがあります。私が書いたバックエンドのperlアダプタと完全に連携していますが、バックエンドスクリプトから現在実行されている部分への挿入を変更する必要があります。私は私のためにインサートをするために頂点を取得する必要があります。問題は、DBに挿入する必要がある変数のいくつかは、perlスクリプトがこれらの変数を取得するため、Apex内で利用できないため、なぜ私がもともとperlスクリプトに挿入を行う理由です。外部コマンド、外部変数をOracle Apexに戻しますか?

私は何を意味するか説明します。私はIPアドレスとSNMPコミュニティをApexからスクリプトに渡します。スクリプトは、IPとコミュニティでSNMP getコマンドを実行し、デバイスのホスト名を含むSysname OIDを取得します。 Apexはこのホスト名を知らないので、これをApexに送って私が挿入できるようにする必要があります。 1つの方法は、デバイス名を使って一時的にDBテーブルを作成し、そこからすぐにテーブルを作成することですが、それは理想的ではありません。

私は誰かがすべての詳細を記入するフォームを持っています。フォームを送信すると、ボタンは次のプロセスを実行します。

DECLARE 

myipaddress VARCHAR2(50); 
username VARCHAR2(50); 
mydevicename VARCHAR2(50); 
mycommstring VARCHAR2(50); 
mydomain VARCHAR2(50); 
sys_owner VARCHAR2(200); 
platform VARCHAR2(200); 
subservice VARCHAR2(200); 
domain VARCHAR2(200); 
state VARCHAR2(200); 
department VARCHAR2(200); 
location VARCHAR2(200); 
city VARCHAR2(200); 
region VARCHAR2(200); 
country VARCHAR2(200); 
sub_cont VARCHAR2(200); 
continent VARCHAR2(200); 
mykeyvalue VARCHAR2(50); 
mycreate VARCHAR(200); 
mytask VARCHAR2(200); 
tmpvar VARCHAR2(30); 
sleep VARCHAR2(200); 
actual VARCHAR2(200); 
BEGIN 


actual := 'Discover'; 
username := :P43_USERNAME; 
myipaddress := :P43_IP_ADDRESS; 
mycommstring := :P43_SNMP_COMMUNITY; 
sys_owner := :P43_OWNER; 
platform := :P43_PLATFORM; 
subservice := :P43_SUBSERV; 
domain := :P43_DOMAIN; 
state := :P43_MON_STATE; 
department := :P43_DEPARTMENT; 
location := :P43_LOCATION; 
city := :P43_CITY; 
region := :P43_REGION; 
country := :P43_COUNTRY; 
sub_cont := :P43_SUB_CONTINENT; 
continent := :P43_CONTINENT; 
mycreate := SYSDATE; 
select TO_CHAR(SYSDATE,'YYYYMMDDHHMISS') into mykeyid from dual; 
mytask := 'Verify'; 

VERIFY(username, myipaddress, mycommstring, sys_owner, platform, subservice, domain, state, department, location, city, region, country, sub_cont, continent, mycreate, actual); 
dbms_lock.sleep(10); 
END; 
VERIFY

部がテーブルに挿入する必要があるシリアル番号、デバイス名等のような他の項目を取得するなど、いくつかのチェックを行い、外部スクリプトにすべての形態の詳細を送信します。したがって、perlスクリプトからの挿入は、フォームごとに単なるIP、Serviceなど以上のものをたくさん持っています。

私は、外部コマンドからApexに返される変数を取得する簡単な方法が必要です。前もって感謝します!

PS!私の宣言などを判断しないでください。これは私のアプリに満足するまで、私が追加したり削除したりするためのテストPL/SQLプロシージャです:

+0

誰でも手伝いできますか?私はある種の 'stdout'をする必要があると思っていますが、Apexを使ってそれをどのようにキャプチャするのか全く分かりません。 –

答えて

0

私はソートされています。私はdbms_outputの周り全体を読んで、そこから私の外部の値をトラップすることができました。

関連する問題