oracle apex post接口
日常记录
使用到了apex_json方式接收
、、、1
首先,接口通过body传递过来,成功接收到, 数据格式为 JSON_OBJECT_T
l_json := JSON_OBJECT_T.parse(:body);
这里我用参数接收到
然后 里面是包含了 "data"
我用 继续接收到这个
l_data := l_json.get_object('data');、、、2
但是有个问题,如果是使用系统原始的 get_array('persons') 之类的,始终是报错
我只能将代码转成clob格式存放到系统的参数中
V_JSON_DATA := l_data.To_Clob;、、、3apex_json.parse(V_JSON_DATA);
apex_json.parse函数来解析JSON字符串使用 apex_json.parse(V_JSON_DATA); 将 CLOB 类型的 JSON 数据解析为 APEX 的 JSON 对象。
然后,尝试使用 apex_json.get_varchar2 函数来访问解析后的 JSON 数据。
apex_json.get_varchar2 函数是线程安全的,这意味着同一时间的多个请求不会互相影响。
每个 APEX 应用程序实例(即每个用户会话)都有自己的内存空间,
因此一个会话中的 apex_json.get_varchar2 调用不会影响另一个会话中的调用。
代码
DECLAREl_json JSON_OBJECT_T;l_data JSON_OBJECT_T;V_JSON JSON_OBJECT_T;V_DATA JSON_OBJECT_T;V_JSON_DATA CLOB;V_VISITORS JSON_ARRAY_T;V_VISITOR JSON_OBJECT_T;PAR_DATA_NO NUMBER;PAR_EXISTS NUMBER;RETURNOBJ JSON_OBJECT_T; -- 返回V_SQLCODE VARCHAR2(4000); -- 错误代码V_SQLERRM VARCHAR2(4000); -- 错误内容BEGINl_json := JSON_OBJECT_T.parse(:body);-- 获取嵌套的data对象l_data := l_json.get_object('data');V_JSON_DATA := l_data.To_Clob;apex_json.parse(V_JSON_DATA);-- 当前流程标题是否存在SELECT COUNT(*)INTO PAR_EXISTSFROM TZ_FREE_TICKETSWHERE PROCESS_TITLE = apex_json.get_varchar2('process_title')AND DEL_FLAG = 1;IF PAR_EXISTS > 0 THEN-- 获取原有批次号 SELECT DATA_NOINTO PAR_DATA_NOFROM TZ_FREE_TICKETSWHERE PROCESS_TITLE = apex_json.get_varchar2('process_title')AND DEL_FLAG = 1;-- 原有数据删除,重新插入UPDATE TZ_FREE_TICKETSSET DEL_FLAG = 0, UPDATE_TIME = SYSDATEWHERE PROCESS_TITLE = apex_json.get_varchar2('process_title')AND DEL_FLAG = 1; -- 根据流程单据名称更新ELSESELECT TZ_FREE_TICKETS_DATA_NO_SEQ.NEXTVAL INTO PAR_DATA_NO FROM DUAL; -- 获取当前批次号 END IF;-- 插入主表数据INSERT INTO TZ_FREE_TICKETS(DATA_NO,OPEN_INVOICE, -- 是否出票 是/否APPLY_TIME, -- 申请日期PROCESS_TITLE, -- 流程单据名称PROCESS_NUMBER, -- OA流程编号APPLY_DEPT, -- 申请部门APPLY_BY, -- 申请人FREE_TICKET_TYPE, -- 免票类型ENTER_GARDEN_CAUSE, -- 入园事由ENTER_GARDEN_DATE, -- 入园日期 TICKET_NAME, -- 票种名称TICKET_PRICE, -- 门票单价APPLY_NUM, -- 申请入园人数FREE_TICKET_PRICE, -- 免票金额RECIPIENT_UNIT, -- 领用人/单位RECIPIENT_PHONE, --领用人联系电话REMARKS, -- 备注BUSID -- 景区 莽山221)VALUES(PAR_DATA_NO,apex_json.get_varchar2('open_invoice'),apex_json.get_varchar2('apply_time'),apex_json.get_varchar2('process_title'),apex_json.get_varchar2('process_number'),apex_json.get_varchar2('apply_dept'),apex_json.get_varchar2('apply_by'),apex_json.get_varchar2('free_ticket_type'),apex_json.get_varchar2('enter_garden_cause'),apex_json.get_varchar2('enter_garden_date'),apex_json.get_varchar2('ticket_name'),apex_json.get_number('ticket_price'),apex_json.get_number('apply_num'),apex_json.get_number('free_ticket_price'),apex_json.get_varchar2('recipient_unit'),apex_json.get_varchar2('recipient_phone'),apex_json.get_varchar2('remarks'),apex_json.get_varchar2('busid'));-- 插入游客信息表数据FOR I IN 1 .. apex_json.get_count('visitors') LOOPINSERT INTO TZ_FREE_TICKETS_VISITOR(DATA_NO,VISITOR_NAME, -- 游客姓名VISITOR_ID_NUMBER, -- 游客身份证号ENTRY_STATUS, -- 入园状态,是 否TICKET_ORDER_NO, -- 关联票务订单号BUSID)VALUES(PAR_DATA_NO,apex_json.get_varchar2('visitors[%d].visitor_name', i),apex_json.get_varchar2('visitors[%d].visitor_id_number', i),apex_json.get_varchar2('visitors[%d].entry_status', i),apex_json.get_varchar2('visitors[%d].ticket_order_number', i),apex_json.get_varchar2('busid'));END LOOP;COMMIT;-- 设置返回信息RETURNOBJ := NEW JSON_OBJECT_T;RETURNOBJ.PUT('msg', '成功');RETURNOBJ.PUT('code', 200);SYS.HTP.PRINT(RETURNOBJ.TO_STRING());EXCEPTIONWHEN OTHERS THENV_SQLCODE := SQLCODE;V_SQLERRM := SUBSTR(SQLERRM, 1, 2000);RETURNOBJ := NEW JSON_OBJECT_T;RETURNOBJ.PUT('msg', '失败' || V_SQLERRM);RETURNOBJ.PUT('code', 500);SYS.HTP.PRINT(RETURNOBJ.TO_STRING());
END;
参数
{"data": {"open_invoice": "是","apply_time": "2024-05-20","process_title": "测试流程单","process_number": "PR202405200001","apply_dept": "人力资源部","apply_by": "张三","free_ticket_type": "VIP","enter_garden_cause": "商务合作","enter_garden_date": "2024-05-22","ticket_name": "普通门票","ticket_price": 120.00,"apply_num": 4,"free_ticket_price": 480.00,"recipient_unit": "合作伙伴公司","recipient_phone": "13800000000","remarks": "请尽快处理","busid": "221","visitors": [{"visitor_name": "张三","visitor_id_number": "123456789012345678","entry_status": "是","ticket_order_number": "T11111111"},{"visitor_name": "李四","visitor_id_number": "123456789012345679","entry_status": "是","ticket_order_number": "T11111111"},{"visitor_name": "王五","visitor_id_number": "123456789012345670","entry_status": "是","ticket_order_number": "T11111111"},{"visitor_name": "赵六","visitor_id_number": "123456789012345671","entry_status": "是","ticket_order_number": "T11111111"}]}
}
相关文章:
oracle apex post接口
日常记录 使用到了apex_json方式接收 、、、1 首先,接口通过body传递过来,成功接收到, 数据格式为 JSON_OBJECT_T l_json : JSON_OBJECT_T.parse(:body); 这里我用参数接收到 然后 里面是包含了 "data" 我用 继续接收到这个 l…...
【数据挖掘】--算法
【数据挖掘】--算法 目录:1. 缺失值和数值属性处理1缺失值处理: 2. 用于文档分类的朴素贝叶斯3. 分治法:建立决策树4. 覆盖算法建立规则5. 挖掘关联规则6. 线性模型有效寻找最近邻暴力搜索(Brute-Force Search)kd树&am…...
halcon机器视觉深度学习对象检测,物体检测
目录 效果图操作步骤软件版本halcon参考代码本地函数 get_distinct_colors()本地函数 make_neighboring_colors_distinguishable() 效果图 操作步骤 首先要在Deep Learning Tool工具里面把图片打上标注文本, 然后训练模型,导出模型文件 这个是模型 mod…...
英文字体:极简现代浓缩未来派科技海报标题排版无衬线字体 PODIUM Sharp Font
PODIUM Sharp 是 2012 年设计的 DUDU 字体的扩展版本。多年后,我决定通过添加新的母版和粗细来重建和开发这种字体。最后,PODIUM Sharp 由 234 种款式组成:从超压缩发际线到超扩展重度。 这个项目的主要目的是在我在旧波兰标本中发现的不同模…...
Java中JDK、JRE,JVM之间的关系
Java中的JDK、JRE和JVM是三个核心概念,其关系可概括为JDK > JRE > JVM,具体如下: 一、定义与作用 JDK(Java Development Kit) 定义:Java开发工具包,用于开发和编译Java程序。包含内容&…...
elasticsearch在windows上的配置
写在最前面: 上资源 第一步 解压: 第二步 配置两个环境变量 第三步 如果是其他资源需要将标蓝的文件中的内容加一句 xpack.security.enabled: false 不同版本的yaml文件可能配置不同,末尾加这个 xpack.security.enabled: true打开bin目…...
vscode 配置 Copilot 提示GHE.com连接失败
步骤一:打开设置并进入 settings.json 点击菜单栏中的 “文件” -> “首选项” -> “设置”。 在搜索设置栏中输入 “Copilot: Advanced”。 点击搜索结果下方的 “在 settings.json 中编辑” 链接,这会打开 settings.json 文件。 步骤二&#…...
Pycharm+CodeGPT+Ollama+Deepseek
首先,体验截图: 接着: 1、下载Ollama: Download Ollama on macOS 2、下载模型 以1.5b为例,打开命令行,输入: ollama run deepseek-r1:1.5b 3、Pycharm安装Code GPT插件 打开PyCharm,找到文…...
Unreal5从入门到精通之在编辑器中更新 UserWidgets
前言 在虚幻中创建越来越复杂和灵活的 UserWidget 蓝图时,一个问题是它们在编辑器中的外观与它们在游戏中的最终外观可能有很大不同。 库存面板示例 假设你想创建一个通用的库存显示小部件。我们可以在整个 UI 中使用它,无论我们需要在哪里显示某些内容。 标题,描述所显示…...
C语言修炼手册
目录 第一章 分支与循环语句 1. 悬空else问题 2. 循环输入问题 3. getchar缓冲区溢出问题 4. goto语句坑点 第二章 函数 1.为什么要有库函数 2.函数嵌套 3.链式访问 4.回调函数 5.函数递归 6.字符转换函数 7.模拟实现字符串拷贝strcpy 8.模拟实现字符串的长度s…...
Linux部署ollama
1、下载ollama wget https://github.com/ollama/ollama/releases/download/v0.1.47/ollama-linux-amd64或者curl -fsSL https://ollama.com/install.sh | sh2、安装ollama install ollama-linux-amd64 /usr/local/bin/ollama3、启动ollama vi /etc/systemd/system/ollama.se…...
跨语言语义理解与生成:多语言预训练方法及一致性优化策略
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
最新华为 HCIP-Datacom(H12-821)2025.2.20
最新 HCIP-Datacom(H12-821),完整题库请扫描上方二维码访问。 如图所示为某OSPF网络,已知R1和R2已,成功建立邻接关系,现一工程师在R2上配置了图中命令。那么在R2上查看LSDB时,可能存在以下哪些LSA? A&…...
TS语言自定义脚手架
初始化 新建文件夹初始化命令 npm init -ytsc --initnpm i types/nodenpm i typescript# 处理别名npm i -D tsc-alias -y 表示选项都为yes 安装ts相关依赖 新建相关文件 bin 文件夹 src文件夹 commands 文件夹 (命令 utils 文件夹 (封装方法) index.t…...
深度学习-122-大语言模型LLM之基于langchian自定义国内联网查询工具并创建智能代理
文章目录 1 访问百度1.1 百度检索1.2 库baidusearch2 自定义工具@tool装饰器3 使用工具创建智能代理3.1 语言模型与工具结合3.2 方式一create_react_agent3.3 方式二create_tool_calling_agent3.4 给代理添加记忆4 参考附录1 访问百度 1.1 百度检索 from bs4 import Beautifu…...
Docker Desktop 入门教学
引言 Docker Desktop 是 Docker 官方为开发者提供的桌面应用程序,支持在 Windows 和 macOS 上轻松构建、运行和共享容器化应用程序。它集成了 Docker 引擎、Docker CLI 客户端以及 Docker Compose 等工具,方便您在本地开发和测试。 一、快速安装 1. 系…...
PyCharm 中的 %reset -f 功能:一键重置控制台变量
在 PyCharm 的日常使用中,我们经常需要在控制台中测试和运行各种代码片段。随着时间的推移,控制台中会积累大量的变量和输出,这可能会使得环境变得混乱,影响我们的开发效率。为了解决这个问题,IPython 提供了一个非常有…...
ollama-chat-ui-vue,一个可以用vue对接ollama的开源项目,可接入deepSeek
ollama-chat-ui-vue 使用vue3 vite elementUi 搭建的前端chat,通过ollama可与模型对话,目前支持独立思考,切换模型(联网查询后续支持) github地址:ollama-chat-ui-vue 制作不易github点点star,谢谢 前置工作 安装ollama,ollama官网地址 安装完olla…...
在Logback中拦截和修改日志
事实上,Logback并没有提供修改日志的直接方法,但有一种解决方法可以通过使用过滤器来实现我们的目标,即使它看起来有点黑客。 假设你记录了某个用户的某个id号数百次,它分散在整个应用程序中,现在你有了一个新的要求,要求你必须加密这个id号。当然,你足够聪明,可以为此…...
Compose 定制UI视图
Compose 定制UI视图 概述MaterialThemeMaterialTheme与CompositionLocalMaterialThemeCompositionLocal 定制主题方案 概述 新建一个新项目时,Compose会在项目中生成 ui/theme 目录,目录中有四个文件,分别如下 Color.kt:颜色配置…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
