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

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

ajax运行过程

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

  1. 新建一个按钮,按钮下建立一个dynamic action ,其动做为 Execute javascript code,代码以下java

     

    1ajax

    2sql

    3json

    4spa

    5.net

    6code

    7server

    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. 结果

相关文章
相关标签/搜索