当前位置: 首页 > java >正文

Oracle Form判断表单数据重复方法

在form builder开发过程中,在前台输入表单数据时,可用此段代码判断输入的表单数据是否重复

第一种方法(嵌套表):

PROCEDURE check_data IS 
--定义三维记录用作三维数组,分别存放工单号、记录行、栏位
type v_tab_rec is record(
ref_name varchar2(255),
ref_record number,
ref_item varchar2(255));TYPE V_TAB IS TABLE OF v_tab_rec;  --索引表v_tab_temp V_TAB := V_TAB();   --初始化嵌套表,嵌套表必须初始化才能使用,此時嵌套表為空l_current_row varchar2(255);
l_record  NUMBER :=0;
l_count  number :=0;
l_count_num number;
l_source_ref varchar2(55);begingo_block('SO_PRICE_D');l_current_row := :system.cursor_record;first_record;loopl_record :=  l_record + 1;if :SO_PRICE_D.partno is not null thenl_count := l_count + 1;v_tab_temp.EXTEND;     --执行extend函数,为数组增加一个null元素 v_tab_temp(l_count).ref_name   := :SO_PRICE_D.partno;v_tab_temp(l_count).ref_record := l_record;v_tab_temp(l_count).ref_item   := 'SO_PRICE_D.partno';end if;EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';next_record;end loop;go_record(l_current_row);l_count_num := l_count;for m in  1..v_tab_temp.count loop  l_source_ref :=  v_tab_temp(m).ref_name;for i in reverse 1..v_tab_temp.count loop  if l_source_ref = v_tab_temp(i).ref_name and i != m thengo_block('SO_PRICE_D');
go_record(v_tab_temp(i).ref_record );  
go_item(v_tab_temp(i).ref_item);msg('料号: '||l_source_ref||'在画面记录中第'||v_tab_temp(m).ref_record||'行和'||v_tab_temp(i).ref_record||'行存在重复,请确认');raise form_trigger_failure;exit;end if;end loop;end loop;END;

第二种方法:

PROCEDURE DEL_SAME
IS 
temp   VARCHAR2(255);
num1   NUMBER := 1;
num2   NUMBER := 2;    
BEGINIF :SO_PRICE_D.partno IS NOT NULLTHENGO_BLOCK ('SO_PRICE_D');FIRST_RECORD;LOOPtemp := :SO_PRICE_D.partno;num1 := num1 + 1;GO_RECORD (num2);LOOPIF    temp = :SO_PRICE_D.partnoTHENmsg ('料号重复');RAISE form_trigger_failure;END IF;EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';NEXT_RECORD;END LOOP;num2 := num2 + 1;GO_RECORD (num1);EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';END LOOP;END IF;
END;

http://www.xdnf.cn/news/13652.html

相关文章:

  • linux 中pdf 的自动分页工具
  • 单片机的中断功能-简要描述(外部中断为例)(8)
  • ArkUI-X在Android上使用Fragment开发指南
  • 多节点并行处理架构
  • Linux 下 pcie 初始化设备枚举流程代码分析
  • 【软件开发】上位机 下位机概念
  • C++11 Type Aliases:从入门到精通
  • Linux笔记之Ubuntu22.04安装 fcitx5 输入法
  • pandas 字符串列迁移至 PyArrow 完整指南:从 object 到 string[pyarrow]
  • Nodejs特训专栏-基础篇:2. JavaScript核心知识在Node.js中的应用
  • STM32 开发 - STM32CubeMX 下载、安装、连接服务器
  • AUTOSAR图解==>AUTOSAR_TR_FrancaIntegration
  • oracle 表空间超过最大限度,清理数据释放内存
  • apple苹果商务管理联合验证使用自定义身份提供方
  • uniapp——input 禁止输入 ,但是可以点击(禁用、可点击)
  • 每日算法刷题Day29 6.12:leetcode二分答案4道题,用时1h10min
  • 给Markdown渲染网页增加一个目录组件(Vite+Vditor+Handlebars)(上)
  • 《TCP/IP协议卷1》TCP协议TCP连接建立和释放
  • IDEA2025(2025.1.1)都更新了什么???
  • Golang实现分布式Masscan任务调度系统
  • 力扣hot100-lc34在排序数组中查找元素的第一个和最后一个位置/lc153寻找旋转排序数组中的最小值/lc33搜索旋转排序数组
  • 岗位竞聘竞选报告个人简历PPT模版分享
  • 基于GeoTools的道路相交多个点容差冗余计算实战
  • MediaPipe如何训练自己的手势数据
  • Java异步编程:提升性能的实战秘籍
  • TruBit Pro:深化全球布局,拓展战略合作
  • (十三)计算机视觉中的深度学习:特征表示、模型架构与视觉认知原理
  • node-red的http-request组件调研三方接口请求参数为form-data解决方案
  • 数据分析入门初解
  • AbMole| Angiotensin II human(M6240;血管紧张素Ⅱ)