外部命令,将外部变量返回给Oracle Apex?

时间:2016-11-18 06:39:48

标签: plsql oracle-apex-5

我创建了一个Oracle Apex 5应用程序。它与我编写的后端perl适配器完美配合,但我需要使用插入到部分进行更改,该部分当前正从后端脚本运行。我需要得到一个顶点来为我做插入。问题是我需要插入到DB中的一些变量在Apex中不可用,因为perl脚本将获得这些变量,因此我最初使用perl脚本来执行插入操作。

所以解释一下我的意思。我会将Apex的IP地址和SNMP社区传递给脚本。该脚本将运行带有IP和社区的SNMP get命令,并返回包含设备主机名的Sysname OID。 Apex不知道这个主机名,因此我需要找到一种方法将其发送回Apex,以便我可以进行插入。一种方法是使用设备名称来执行临时数据库表,然后从那里开始,但这并不理想。

所以我有一个表格,有人会填写所有细节。当他们提交表单时,按钮会运行以下过程。

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程序,我用来添加和删除东西,直到我对我的应用程序感到满意为止:)

1 个答案:

答案 0 :(得分:0)

所以我整理好了。我在dbms_output周围阅读了很多内容并设法从那里捕获我的外部值。