在oracle apex 利用ajax调用pl sql (新手版)

隐身守侯 提交于 2019-12-02 01:04:17

项目中我们需要在界面上点击一个按钮,运行后台一个pl sql并把程序运行结果返回给前端,其步骤如下

ajax运行过程

先介绍js如何调用plsql,plsql将结果传回前端js

  1. 新建一个按钮,按钮下创建一个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);

    }

    }

    });

  2. 创建一个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;

  3. 运行结果

js向plsql传递参数

下面介绍js如何将参数传给plsql,步骤和上一个类似,但是js代码有作更改

  1. 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);

    }

    }

    });

  2. 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;

  3. 结果

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!