项目中我们需要在界面上点击一个按钮,运行后台一个pl sql并把程序运行结果返回给前端,其步骤如下
ajax运行过程
先介绍js如何调用plsql,plsql将结果传回前端js
-
新建一个按钮,按钮下创建一个dynamic action ,其动作为 Execute javascript code,代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
apex.server.process("UPDATE_PRODUCTS"//<--- 第二步中process plsql的代码的名字
, {}, {
dataType: 'text',
success: function(pData) {
//成功后执行的function
var json_result = JSON.parse(pData);
//将字符串转成json格式
if (json_result.retcode == "Y") {
apex.message.showPageSuccess(json_result.errbuf);
}
}
});
-
创建一个Ajax callback,名字为UPDATE_PRODUCTS,代码如下
1
2
3
4
5
6
7
begin
--put your code here
apex_json.open_object();
apex_json.write('retcode', 'Y');
apex_json.write('errbuf','ajax调用成功');
apex_json.close_object();
end;
- 运行结果
js向plsql传递参数
下面介绍js如何将参数传给plsql,步骤和上一个类似,但是js代码有作更改
-
js代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apex.server.process("UPDATE_PRODUCTS"//<--- 第二步中process plsql的代码的名字
, {
x01: 23333 //将参数传给pl sql
}, {
dataType: 'text',
success: function(pData) {
//成功后执行的function
var json_result = JSON.parse(pData);
//将字符串转成json格式
if (json_result.retcode == "Y") {
apex.message.showPageSuccess(json_result.errbuf);
}
}
});
-
plsql代码如下
1
2
3
4
5
6
7
8
9
10
11
12
declare
a varchar2(30);
begin
a := APEX_APPLICATION.g_x01; --读取ajax传过来的数据
--bhsc_bid_pkg.get_bid_result(a ); 传入参数并调取后台程序包
--向ajax返回数据,string格式,但是形式上类似json
apex_json.open_object();
apex_json.write('retcode', 'Y');
apex_json.write('errbuf','传入的参数为' || a);
apex_json.close_object();
end;
来源:oschina
链接:https://my.oschina.net/u/2862827/blog/1936320