当前位置: 首页 > 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;

相关文章:

  • 用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
  • 老房装修改造哪家好/seo关键词排名优化品牌
  • 工业网站建设/百度app推广
  • 动漫制作与设计专业/seo排名点击器
  • macbook做网站开发/网站推广方案范文
  • 柳州 网站推广/全球网站排名查询
  • 建盏公司最新消息/杭州seo靠谱