使用newbosid函数解决EAS表FID插入值不符合标准的问题

新知榜官方账号

2023-09-25 01:06:17

问题背景

当我们在后台给EAS的表大批量插入数据时,多用于oracle的大批量insert/merga,FID插入的值不符合EAS表的标准,前台界面上打开单据会报错。这时候就需要调用EAS系统自动获取FID的函数。newbosid('bostypeid')的函数可以使用SELECT newbosid('B8C37E5B') FROM dual; 直接获取。bostypeid为eas\deployed_metas目录下面的facade_pkmapping.properties里面的值,自己找下即可。

使用场景

本文介绍了使用merge插入大量数据的场景,大概是10w级别的,需要6~10秒。

newbosid函数解析

其实这里更多的是一堆运算,不了解也没关系,学习一下高级function也可以。CREATE OR REPLACE FUNCTION NEWBOSID(TYPESTRING VARCHAR2) RETURN VARCHAR2 IS GUID RAW(32); S_GUID VARCHAR2(32); G_HEX VARCHAR(22); BEGIN GUID := SYS_GUID(); S_GUID := RAWTOHEX(GUID); G_HEX := '0123456789ABCDEFabcdef'; IF LENGTH(TYPESTRING) = 8 THEN FOR I IN 1..8 LOOP IF INSTR(G_HEX, SUBSTR(TYPESTRING, I, 1), 1, 1) = 0 THEN GOTO OLD_FORM; ENDIF; END LOOP; RETURN UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CONCAT(GUID, HEXTORAW(TYPESTRING)))) ; ELSIF LENGTH(TYPESTRING) = 4 THEN GOTO OLD_FORM; ELSE RETURN NULL; ENDIF; <> RETURN SUBSTR(S_GUID,0,8)||'-'||SUBSTR(S_GUID,8,4)||'-'||SUBSTR(S_GUID,12,4)||'-'||SUBSTR(S_GUID,16,4)||'-'||SUBSTR(S_GUID,20,12)||TYPESTRING; END;

本页网址:https://www.xinzhibang.net/article_detail-13496.html

寻求报道,请 点击这里 微信扫码咨询

关键词

EAS FID insert oracle newbosid函数

分享至微信: 微信扫码阅读

相关工具

相关文章

相关快讯