JSON:  JavaScript 对象表示法 JavaScript Object Notation

JSON 是存储和交换文本信息的语法。类似XML。

JSON 比 XML更小、更快,更易解析。

使用中,JSON有以下3种结构:

1. 对象:{"name":"Jenrry","age":19}

2.数组: 比如  [{"name":"Jenrry","age":19},{"name":"Jerry","age":25}]

3. 值:{“name”:"Jenrry","birthday":{"month":8,"day":2}},类似于对象嵌套对象

大括号{} 用来描述一组“不同类型的无序键值对集合”,每个键值对可以理解为OPP的属性描述,方括号[] 用来描述一组“相同类型的有序数据组合”。

摘自: https://www.cnblogs.com/xiaochongchong/p/5284441.html

如上,JSON是一种数据形式。

Oracle EBS中在REST接口中使用JSON数据,其实也是将XML格式转化而已。REST接口还是基于HTTP转发,使用HTTP协议里的POST方法,因此调用底层的 uttl_http函数。

l_exp_json json;
l_exp_clob CLOB; l_exp_json := json(); l_exp_json.put('COMPANY_CODE',
p_company_code);
l_exp_json.put('REQUEST_STATUS',
1);
l_exp_json.put('ERROR_MESSAGE',
p_exception_msg); l_exp_clob := empty_clob();
dbms_lob.createtemporary(l_exp_clob,
TRUE);
l_exp_json.to_clob(l_exp_clob,
TRUE);
RETURN l_exp_clob;

  

    l_all_json       json;
l_single_json json;
l_json_list json_list;
l_batch_id NUMBER; l_all_json := json();
l_all_json.put('COMPANY_CODE',
g_company_code);
l_all_json.put('REQUEST_STATUS',
0);
l_all_json.put('ERROR_MESSAGE',
'');
l_json_list := json_list(); FOR rec_records IN cur_payment_data
LOOP
l_single_json := json();
l_single_json.put('EXPENSE_NUMBER',
rec_records.expense_number);
l_single_json.put('EXPENSE_NUMBER2',
rec_records.expense_number2);
l_json_list.add_elem(l_single_json.to_json_value);
END LOOP; l_all_json.put('RECORDS',
l_json_list);
l_return_clob := empty_clob();
dbms_lob.createtemporary(l_return_clob,
TRUE);
l_all_json.to_clob(l_return_clob,
TRUE); x_rtn_clob := l_return_clob;
dbms_lob.freetemporary(l_return_clob);

 

FUNCTION invoke_webservice(p_wsdl         IN VARCHAR2,
p_soap_request IN VARCHAR2) RETURN xmltype IS
http_req utl_http.req;
http_resp utl_http.resp;
soap_respond VARCHAR2(30000);
resp xmltype;
BEGIN http_req := utl_http.begin_request(p_wsdl, 'POST', 'HTTP/1.1');
utl_http.set_header(http_req, 'Content-Type', 'text/xml;charset=utf-8'); -- charset=utf-8 如多参数有中文必须加
utl_http.set_header(http_req,
'Content-Length',
lengthb(p_soap_request)); --lengthb 不能用 length 如果用length 则碰见中文会报错
utl_http.set_header(http_req, 'SOAPAction', '');
utl_http.write_text(http_req, p_soap_request);
http_resp := utl_http.get_response(http_req);
utl_http.read_text(http_resp, soap_respond);
utl_http.end_response(http_resp);
resp := xmltype.createxml(soap_respond);
RETURN resp;
END;

  

l_request  utl_http.req;
l_response utl_http.resp;
l_resp_xml xmltype;
resp_json json;
l_resp_json json_list;
json_v json_value; l_req_data := 'page=' || p_page || '&size=10&startDate=' ||
to_char(nvl(p_start_date, SYSDATE - 1), 'YYYY-MM-DD') ||
'&endDate=' ||
to_char(nvl(p_end_date, SYSDATE + 1), 'YYYY-MM-DD'); l_url := l_url || l_req_data; l_request := utl_http.begin_request(l_url,
'POST',
utl_http.http_version_1_1);
utl_http.set_header(l_request,
'Content-Type',
'text/html; charset=utf-8');
utl_http.set_header(l_request,
'Content-Length',
to_char(lengthb(l_url)));
utl_http.write_text(l_request, l_url);
l_response := utl_http.get_response(l_request); utl_http.read_text(l_response, l_resp_data);
utl_http.end_response(l_response);
--插入数据
resp_json := json(l_resp_data);
l_message := get_string(json_ext.pp(obj => resp_json,
v_path => 'message'));
l_status := get_string(json_ext.pp(obj => resp_json,
v_path => 'status'));
l_error_code := get_string(json_ext.pp(obj => resp_json,
v_path => 'errorCode'));
l_total_count := nvl(json_ext.pp(obj => resp_json,
v_path => 'totleCount'),
0); --获取需要循环次数
g_page := ceil(l_total_count / 10);
l_resp_json := json_list(json_ext.pp(obj => resp_json,
v_path => 'data')); --个数

  

Oracle EBS json的更多相关文章

  1. BPM与 SAP & Oracle EBS集成解决方案分享

    一.需求分析 SAP和Oracle EBS都是作为全球顶级的的ERP产 品,得到了众多客户的青睐.然而由于系统庞大.价格昂贵以及定位不同,客户在实施过程中经常会面临以下困惑: 1.SAP如何实现&qu ...

  2. Oracle EBS - Doc

    Oracle EBS spec.: http://vianet/IT/IT%20Dept/IT%20Project%20Update2/Active%20Projects%20%20Manufactu ...

  3. Oracle EBS R12 (12.1.3) Installation Linux(64 bit)

    Oracle EBS R12 (12.1.3) Installation Linux(64 bit) Contents Objective. 3 1 Download & Unzip. 3 D ...

  4. Oracle EBS进化史

    https://blogs.oracle.com/ptian/entry/oracle_ebs%E8%BF%9B%E5%8C%96%E5%8F%B2 通过图表总结了下Oracle EBS的进化历史,回 ...

  5. Oracle EBS Form 发布到Server端的注意事项

    前段时间在本地XP系统上测试了一些整合javabean的Form例子,想着发布到服务器段去看看能否运行正常,一开始以为会和本地XP系统一样,部署到相关的目录下进行一些配置就可以了,但实际过程却和想象的 ...

  6. Oracle EBS Form Builder使用Java beans创建窗体

    最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇 ...

  7. Oracle EBS Java Applet报错:找不到类

    Oracle EBS Home Page可以打开,但是无法打开EBS的Form,查看Java控制台,有错误报出. java控制台报错,如下: Java Plug-in 1.6.0_07 使用 JRE ...

  8. Oracle EBS的BIP报表中显示特殊字体

    http://oracleseeker.com/2009/08/25/font_mapping_setup_for_special_character_print_in_oracle_ebs_bip/ ...

  9. Oracle Ebs R12 SLA与GL关系变化

    http://www.cnblogs.com/bruce_zhao/p/3809886.html Oracle Ebs R12 SLA与GL关系变化 SLA概念:SLA(Subledger Accou ...

随机推荐

  1. ELK实践(二):收集Nginx日志

    Nginx访问日志 这里补充下Nginx访问日志使用的说明.一般在nginx.conf主配置文件里需要定义一种格式: log_format main '$remote_addr - $remote_u ...

  2. JVM读书笔记之内存管理

    对于从事C.C++程序开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”又是从事最基础工作的“劳动人民”--既拥有每一个对象的“所有权”,又负责每一个对象生命开始到终结的维护责任. 对于Ja ...

  3. leetcode — simplify-path

    import java.util.Stack; /** * * Source : https://oj.leetcode.com/problems/simplify-path/ * * * * Giv ...

  4. 使用redis进行基于shiro的session集群共享

    之前写过一篇nginx多tomcat负载均衡,主要记录了使用nginx对多个tomcat 进行负载均衡,其实进行负载均衡之前还有一个问题没有解决,那就是集群间的session共享,不然用户在登录网站之 ...

  5. python3 对拉勾数据进行可视化分析

    上回说到我们如何如何把拉勾的数据抓取下来的,既然获取了数据,就别放着不动,把它拿出来分析一下,看看这些数据里面都包含了什么信息.(本次博客源码地址:https://github.com/MaxLyu/ ...

  6. 使用Laya引擎开发微信小游戏(上)

    本文由云+社区发表 使用一个简单的游戏开发示例,由浅入深,介绍了如何用Laya引擎开发微信小游戏. 作者:马晓东,腾讯前端高级工程师. 微信小游戏的推出也快一年时间了,在IEG的游戏运营活动中,也出现 ...

  7. js forEach跳出循环

    假设当我们只需知道某个数组有没有某个属性,如果找到了直接跳出循环,省略掉剩下的循环步骤是较优化的操作,但是for中是可以利用break跳出循环,但break在forEach中无效,那么forEach能 ...

  8. GNU C 与 ANSI C(上)

    Linux 上可用的 C 编译器是 GNU C 编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布.GNU C 是对标准 C 进行的一系列扩展,以增强标准 C 的功能. 1. 零长度 ...

  9. [翻译]一个新式的基于文本的浏览器 Browsh

    介绍 什么是Browsh? Browsh是一个纯文本浏览器,可以运行在大多数的TTY终端环境和任何浏览器.目前1 ,终端客户端比浏览器客户端更先进2. TTY 客户端 终端客户端即时更新和交付,以便于 ...

  10. 推荐写作平台gitbook——让我们换一种形式写作

    https://www.gitbook.com/ 我一直用这个平台进行写作.目前有两本电子书可以供大家阅读,分别如下 Office 365 开发入门指南 https://www.gitbook.com ...