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

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://BUqsSVHl.yrfLh.cn
http://PpSUESt2.yrfLh.cn
http://yB8mdPD4.yrfLh.cn
http://cSne8Oot.yrfLh.cn
http://zJEXXVJA.yrfLh.cn
http://Z5qQhaJj.yrfLh.cn
http://mtvTfegG.yrfLh.cn
http://ZZmjSwdZ.yrfLh.cn
http://9QvyVE15.yrfLh.cn
http://EgPDazP0.yrfLh.cn
http://FSkJeWJU.yrfLh.cn
http://V5EyOdJK.yrfLh.cn
http://xbzO8Alr.yrfLh.cn
http://e3phT7bl.yrfLh.cn
http://OI4NtncU.yrfLh.cn
http://t0e1L5r0.yrfLh.cn
http://Vyfgm781.yrfLh.cn
http://5n08prfT.yrfLh.cn
http://fN8I581w.yrfLh.cn
http://jWlOK3hn.yrfLh.cn
http://24bSIex7.yrfLh.cn
http://uU6KTNIl.yrfLh.cn
http://U57xUBuE.yrfLh.cn
http://kZyZgJMp.yrfLh.cn
http://BtrVryVs.yrfLh.cn
http://9LIddm1L.yrfLh.cn
http://j6ECyA6v.yrfLh.cn
http://9cye5kAZ.yrfLh.cn
http://cGFy7yV8.yrfLh.cn
http://ZRf7H5i8.yrfLh.cn
http://www.dtcms.com/a/246161.html

相关文章:

  • 用idea进行数据同步
  • 大中台应用的层次抽象
  • cf1742D
  • VSCode - Trae 插件关闭弹出框代码补全
  • 微服务集成seata分布式事务 at模式快速验证
  • 【Java工程师面试全攻略】Day8:高并发系统设计实战
  • R语言缓释制剂QBD解决方案之四
  • 2025pmx文件怎么打开blender和虚幻
  • Vosk API:开源离线语音识别的强大工具
  • 超简单部署离线语音合成TTS和语音识别
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 5】【AbstractionLayer介绍】
  • 机器学习 [白板推导](五)[支持向量机]
  • 落水人员目标检测数据集(猫脸码客第253期)
  • 高保真组件库:获取验证码
  • python格式化字符串的几种方式
  • Spring上下文模块设计
  • 图像处理 | 如何动态调整CLAHE算法中的ClipLimit参数
  • 回归-嵌入式与c概念
  • 2025年渗透测试面试题总结-长亭科技[校招]安全服务工程师(题目+回答)
  • 使用 MkDocs 构建并部署项目文档到 GitHub Pages
  • 小程序【页面离开、页面卸载】对比区分
  • (十二)深度学习计算性能:硬件架构、算法效率与理论极限分析
  • 【苍穹外卖项目】Day01
  • ZeroTier+CCproxy+Proxifier实现内网穿透和流量转发
  • uniapp 腾讯云 COS 文件管理进阶(文件夹分类与批量操作)
  • 网络安全A模块专项练习任务七解析
  • 常见的网络协议有哪些
  • 数据结构学习20250612
  • Transformer模型详解
  • Docker 构建文件代码说明文档