• [技术干货] 密码强度正则表达式
    密码强度正则表达式比如必须包含大写字母,小写字母和数字,至少8个字符等 需要一个密码强度正则表达式在用户注册时校验用户密码强度:密码至少8个字符,包括1个大写字母,1个小写字母和1个数字或特殊字符,例如#,?,!。网上搜索了一些解决方案分享给大家。 方案一 至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/ 或者: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,16}$/ 其中 [\s\S] 中的\s空白符,\S非空白符,所以[\s\S]是任意字符。也可以用 [\d\D]、[\w\W]来表示。 至少8个字符,至少1个大写字母,1个小写字母和1个数字,不能包含特殊字符(非数字字母): ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$ 至少8个字符,至少1个字母,1个数字和1个特殊字符: ^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$ 至少8个字符,至少1个大写字母,1个小写字母和1个数字: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$ 至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,} 最少8个最多十个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10} 方案二 还有,你可以使用这个正则表达式: ^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$ 这个正则表达式将强制执行这些规则: 至少1个大写字母English letter,(?=.*?[A-Z]) 至少1个小写英文字母,(?=.*?[a-z]) 至少1位数字,(?=.*?[0-9]) 至少有1个特殊字符,(?=.*?[#?!@$%^&*-]) 最小8个长度.{8,} 方案三 正则表达式没有AND运算符,所以编写正则表达式与有效密码匹配是非常困难的,当有效性被某些东西和其他东西等定义时… 但是,正则表达式确实有1个OR运算符,所以只需应用DeMorgan的定理,并编写1个与无效密码相匹配的正则表达式: 任何少于8个字符或任何没有数字或任何没有大写字母或任何没有小写字母或任何没有特殊字符的任何东西。 所以:^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$,如果有什么匹配的话,这是1个无效的密码。 方案四 由于特殊字符仅限于键盘中的特殊字符,因此可用于任何特殊字符: ^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$ 这个正则表达式将强制执行这些规则: – 至少1个大写英文字母 – 至少1个小写英文字母 – 至少1位数字 – 至少1个特殊字符 – 最少8个长度 方案五 根据我的情况,我遇到了最受欢迎的答案。例如,我的验证失败,其中包含;或[等字符。我对 white-listing 我的特殊字符不感兴趣,所以我用[^\w\s]作为测试 – 简单地把非字符(包括数字)和非空格字符放在一起。总而言之,这是对我有用的 至少8字符 至少1数字字符 至少1小写字母 至少1大写字母 至少1特殊字符 /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/ 简单演示涵盖各种情况 方案六 导入JavaScript文件jquery.validate.min.js。 您可以使用此方法: JavaScript 代码: $.validator.addMethod("pwcheck", function (value) { return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value) }); 至少1个大写英文字母 至少1个小写英文字母 至少1位数字 至少1个特殊字符 方案七 尝试这个: – 最少6个字符 – 至少有1个大写字符 – 至少1个小写字符 – 至少1个特殊字符 表达式: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/ 可选特殊字符: 至少1个特殊字符 至少1个数字 特殊字符是可选的 最少6个字符,最多16个字符 表达式: /^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/ 如果不需要最小和最大条件,则删除.{6, 16} – 6是最小字符数限制 – 20是最大字符限制 – ?=表示匹配表达式 原文链接:https://www.cnblogs.com/loong-hon/p/11288028.html
  • [技术干货] like效率 regexp_Oracle中like效率正则表达式浅析【转载】
    Oracle 中like常用但是其效率不是高。特别是使用%a%-----》全局扫描,没有利用到任何索引。情况可以的条件尽量下使用a%------》可以利用正序的索引。%a------》可以利用反序的索引(当然得已有反序的索引)。使用instr函数取代like查询,可提高效率,在海量数据中效果尤其明显。1.%a%方式:select * from pub_yh_bm twhere instr(t.chr_bmdm,'2')>0等份于:select * from pub_yh_bm twhere t.chr_bmdm like '%2%'2.%a方式:select * from pub_yh_bm twhere instr(t.chr_bmdm,'110101')=length(t.chr_bmdm)-length('110101')+1等份于:select * from pub_yh_bm twhere t.chr_bmdm like '%110101'3.a%方式:select * from pub_yh_bm twhere instr(t.chr_bmdm,'11010101')=1等份于:select * from pub_yh_bm twhere t.chr_bmdm like '11010101%'ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,但是它们使用POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。POSIX 正则表达式由标准的元字符(metacharacters)所构成:'^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。'$' 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。'.' 匹配除换行符之外的任何单字符。'?' 匹配前面的子表达式零次或一次。'+' 匹配前面的子表达式一次或多次。'*' 匹配前面的子表达式零次或多次。'|' 指明两项之间的一个选择。例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的字符串。'( )' 标记一个子表达式的开始和结束位置。'[]' 标记一个中括号表达式。'{m,n}' 一个精确地出现次数范围,m=出现m次。\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。字符簇:[[:alpha:]] 任何字母。[[:digit:]] 任何数字。[[:alnum:]] 任何字母和数字。[[:space:]] 任何白字符。[[:upper:]] 任何大写字母。[[:lower:]] 任何小写字母。[[:punct:]] 任何标点符号。[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。各种操作符的运算优先级\转义符(), (?:), (?=), [] 圆括号和方括号*, +, ?, {n}, {n,}, {n,m} 限定符^, $, anymetacharacter 位置和顺序范例:--regexp_like--查询value中以1开头60结束的记录并且长度是7位select * from fzq where value like '1____60';select * from fzq where regexp_like(value,'1....60');--查询value中以1开头60结束的记录并且长度是7位并且全部是数字的记录。--使用like就不是很好实现了。select * from fzq where regexp_like(value,'1[0-9]{4}60');-- 也可以这样实现,使用字符集。select * from fzq where regexp_like(value,'1[[:digit:]]{4}60');-- 查询value中不是纯数字的记录select * from fzq where not regexp_like(value,'^[[:digit:]]+$');-- 查询value中不包含任何数字的记录。select * from fzq where regexp_like(value,'^[^[:digit:]]+$');--查询以12或者1b开头的记录.不区分大小写。select * from fzq where regexp_like(value,'^1[2b]','i');--查询以12或者1b开头的记录.区分大小写。select * from fzq where regexp_like(value,'^1[2B]');-- 查询数据中包含空白的记录。select * from fzq where regexp_like(value,'[[:space:]]');--查询所有包含小写字母或者数字的记录。select * from fzq where regexp_like(value,'^([a-z]+|[0-9]+)$');--查询任何包含标点符号的记录。select * from fzq where regexp_like(value,'[[:punct:]]');select * from Dba_Tables b where regexp_like(b.table_name,'^[[A-Z]]$') And b.owner='SSCP2'来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-730802/,如需转载,请注明出处,否则将追究法律责任。
  • [技术干货] python 正则表达式如何实现重叠匹配【转】
    正则表达式实现重叠匹配正则表达式与正则匹配正则表达式正则匹配正则表达式实现重叠匹配1234import regexstring = '100101010001'str_re = '101'print(regex.findall(str_re, string, overlapped=True))普通的re库匹配,只能匹配一个’101’。正则表达式与正则匹配正则表达式正则表达式可理解为对数据筛选的表达式,是有限个原子和元字符组成。原子:基本组成单位,每个表达式至少有一个原子普通字符组成原子 非打印字符组成原子(不打印在输出台的字符)\n:换行\t:tab退格符通用字符组成原子\w:匹配任意字母、数字、下划线\W:与\w相反\d:匹配任意十进制数\D:与\d相反\s:匹配任意空白字符,如空格、换行、缩进\S:与\s相反原子表组成原子一组原子组成一个表,由[]声明表内原子优先级相等,但内容只出现依次若原子表以 ^ 开头,则表示取反12345678910111213141516#普通字符组成原子pat1 = "abcd"  #非打印字符组成原子pat2 = "\n"  #通用字符做原子pat3 = "\w"  #原子表组成原子pat4 = "py[abc]"#可以匹配pya,pyb,pyc,但匹配pyab等原子表重复出现的情况失败  #原子表开头带 ^ 表示取反pat5 = "py[^abc]"#第三个位置匹配除了a,b,c外的任意一个字符元字符:正则表达式中具有特殊含义的字符.匹配任意字符,除了换行符^匹配字符串开始的位置$匹配字符串结束的位置,当出现多组符合的匹配时,返回字符串最后的那组匹配*匹配 0,1,n 次前面的原子【贪婪模式:尽可能多的匹配】?匹配 0,1 次前面的原子【懒惰模式:精确匹配】+匹配 1,n 次前面的原子{ j }前面的原子出现 j 次{ j , }前面的原子至少出现 j 次{ j , k }前面的原子至少出现 j 次,至多出现 k 次i | j匹配 i 或 j ,若 i 与 j 同时出现,匹配 i( )组,限制这组数据的组合如()内所描述一样,只返回符合括号内描述的内容模式修正符即函数中 flag 位置的参数,在不改变正则表达式的情况下改变其含义,调整匹配结果。re.I匹配时忽略大小写re.M多行匹配re.L本地化识别匹配re.U根据unicon字符匹配,影响\w \Wre.S匹配包括换行符正则匹配正则表达式是对字符串进行模糊匹配,其中一个应用为正则匹配。正则匹配是python爬虫的一个使用技术,用于在爬取的文本信息中提取目标信息。正则匹配常用的函数:(调用正则表达式模块re)re.search(pat, str[, flag]):扫描字符串str,返回pat的位置(第一次成功匹配的),flag用于控制正则表达式的匹配方式1234import restr = 'python'pat = 'pytho[a-n]'print(re.search(pat, str))re.match(pat, str[, flag]):扫描字符串str开始的位置,返回pat的位置(第一次成功匹配的),flag用于控制正则表达式的匹配方式【若开始就不符合则结束,返回none】123456import restr_1 = 'hello world'str_2 = 'world hello'pat = 'world'print(re.match(pat, str_1))print(re.match(pat, str_2))re.complie(pat[, flag]):编译正则表达式pat,返回正则表达式对象findall(str[, pos[, endpos]]):匹配所有,用列表返回string中所有匹配到的子串【不止第一次】,pos和endpos可指定在string中的起始位置re.complie(pat).findall(str):全局匹配函数,匹配str中所有符合pat的子串,装入一个列表返回结果12345import restr = "hello world hello world hello world"pat = "hello"print(re.complie(pat).findall(str))print(re.complie(pat).findall(str, 5, 15))re.sub(pat, repl, str[, count[, flag]]):替换字符串中的匹配项【清洗数据】,可用count指定最大替换次数12345import restr = "400-823-823"pat = "-"#短横改空格,最大替换次数2str_new = re.sub(pat, " ", str, count=2)
  • [技术干货] 应用场景分享——文本中正则匹配“金额或验证码”
    本文主要讲两个常用场景:    场景1:文本中取出“金额数”;    场景2:登录某网站时,需要从手机接收的验证码信息中获取“验证码数字”。场景1原理:    一般文本中的金额数都有前缀或后缀,见下图,货币是后缀,符号是前缀。    (1)以“前缀”来匹配金额数的正则表达式可写成:(?<=¥|$|€|£|₣)\d+\.?\d*    (2)以“后缀”来匹配金额数的正则表达式可写成:\d+\.?\d*(?=元|人民币|美元|欧元|英镑|法郎|日元)    (3)前缀后缀都要考虑到,可用"|"或符号连接上面两个正则表达式:(?<=¥|$|€|£|₣)\d+\.?\d*|\d+\.?\d*(?=元|人民币|美元|欧元|英镑|法郎|日元)场景2原理:    一般手机验证码信息中的验证码数字之前定有“验证码”三个字。    例如:中国移动短信:“尊敬的客户,本次短信验证码为440562,您在畅由平台办理的中国移动12345678900手机号扣减移动1080积分兑换为畅由积分的业务,请于60秒内输入验证,请勿告知他人。中国移动不会以任何方式向你索取该验证码,如非本人操作,请核实确认。详询10086。【中国移动 积分商城】”    (1)可根据“验证码”这三字来匹配验证码数字,正则表达式可写成:验证码.*?(\d+)注:Studio中主要用的控件如下:(1)查找文本中所有符合的金额数:“regex_findall-正则查找所有”控件;(2)查找文本中第一个符合的金额数:“regex_search-正则搜索”控件。Studio机器人脚本样例可见附件“正则匹配_金额or验证码.zip”。
  • [迁移系列] DWS自定义函数列表1
    函数名函数说明样例返回说明兼容对象语言位置ADD_MONTHS2(p1,p2) 当前日期 P1 增加 p2 个月的月末测试案例: select  ADD_MONTHS2('2018-04-22',2); 输出: 20180630dateTDC语言https://bbs.huaweicloud.com/forum/thread-173862-1-1.htmlADD_MONTHS3(p1,p2)当前日期 P1 增加 p2 个月的月末测试案例: select  ADD_MONTHS3(CAST('20180502' AS DATE FORMAT 'YYYYMMDD'),3)输出: 20180831dateTDC语言 DPT_MOB12(p1,p2)计算变量VAR514测试案例:select  DPT_MOB12('1010101',30);输出: 1intergerTDC语言  edit_distance_similarity(p1,p2)比较两个字符串的相似度测试案例:select edit_distance_similarity('河北沧州东朔股份有限公司','河北沧州东朔股份有限公司')输出: 100select edit_distance_similarity('河北沧州东朔股份有限公司','沧州东朔房地产开发又发公司')输出: 50intergerORACLEC语言 max_col(p1,p2)计算浮点数最大值测试案例:select  max_col(3.3,2.2);输出: 3.30floatTDC语言 min_col(p1,p2)计算浮点数最小值测试案例:select  min_col(3.3,2.2);输出: 2.20floatTDC语言 month_between(p1,p2)间隔月份测试案例:select  month_between(CAST('20180422' AS DATE FORMAT 'YYYYMMDD'),CAST('20181202' AS DATE FORMAT 'YYYYMMDD'))输出: 7intergerTDC语言 month_between1(p1,p2) P1(YYYYMM)-P2(YYYYMM)的月份数测试案例:select  month1_between(CAST('20180422' AS DATE FORMAT 'YYYYMMDD'),CAST('20181202' AS DATE FORMAT 'YYYYMMDD'))输出: -8intergerTDC语言 month_between1(p1,p2) P1(YYYYMM)-P2(YYYYMM)的月份数测试案例:select  month_between(CAST('20180422' AS DATE FORMAT 'YYYYMMDD'),CAST('20181202' AS DATE FORMAT 'YYYYMMDD'))输出: 7intergeroracleC语言 specialdata(inputdata varchar,inputtype varchar)根据获取的时间类型,获取对应的时间本月初:specialdate('20190806',11),返回时间:20190801本月末:specialdate('20190806',12),返回时间:20190831上月初:specialdate('20190806',13),返回时间:20190701上月末:specialdate('20190806',14),返回时间:201907031本季初:specialdate('20190806',21),返回时间:20190701本季末:specialdate('20190806',22),返回时间:20190930上季初:specialdate('20190806',23),返回时间:20190301上季末:specialdate('20190806',44),返回时间:20190630本年初:specialdate('20190806',31),返回时间:20190101本年末:specialdate('20190806',32),返回时间:201901231上年初:specialdate('20190806',33),返回时间:20180101上年末:specialdate('20190806',34);返回时间:201801230dateTDplsql substring_index(str,delim,count)按关键字截取字符串 例:select substring_index('blog.jb51.net','.', 2) as abstract from my_content_t结果:blog.jb51 textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173882-1-1.htmlchar2hexint(text)GBK字符集下的字符的16进制select char2hexint('1中2文'); char2hexint -------------- 31D6D032CEC4textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173886-1-1.htmlchars(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select chars('1中2文'); chars-------     6integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173892-1-1.htmldaynumber_of_calendar(date)输入日期与'1900-01-01'相差的天数select daynumber_of_calendar(current_date); daynumber_of_calendar-----------------------                 44508integerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173897daynumber_of_month(date)一个月的第几天select daynumber_of_month(date '2021-11-09'); daynumber_of_month--------------------                  9integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173900-1-1.htmldaynumber_of_week(date)一个周的第几天,在td中,周日为1,周六为7select daynumber_of_week(date '2021-11-07'); daynumber_of_week-------------------                 1integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173909-1-1.htmldaynumber_of_year(date)一个年的第几天select daynumber_of_year(date '2021-11-06'); daynumber_of_year-------------------               310integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173911-1-1.htmllpad(character varying,integer,character varying)左边填充,td中1个中文占2个字符,导致td与dws结果不一样select public.lpad('1中2文',10,'#');    lpad   ------------ ####1中2文textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-174007-1-1.htmlmonthnumber_of_year(date)一个年的第几月select monthnumber_of_year(date '2021-11-10'); monthnumber_of_year---------------------                  11integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173927-1-1.htmlmonths_between(date,date)日期相差月份数量select months_between(date '2021-11-10',date '2021-09-20'); months_between----------------         1.6774numericTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173935&page=1&authorid=&replytype=&extra=#pid1396442months_between_double(date,date)日期相差月份数量(中间函数),一般不使用,因此c函数只能返回double类型,但一般函数返回integer。 double precisionTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173936numtoyminterval(integer,character varying)数字转interval,与td保持一致,第二个参数输入只能是YEAR或者MONTHselect numtoyminterval(100, 'MONTH'); numtoyminterval----------------- 8 years 4 monsintervalTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173872-1-1.htmloadd_months(date,integer)获取多个月以后(以前)的同样的日期。若是月末取月末(区别与add_months)select oadd_months(date '2020-02-29',-1); oadd_months------------- 2020-01-31select oadd_months(date '2020-02-28',1); oadd_months------------- 2020-03-28dateTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173876quarternumber_of_year(date)一个年的第几个季度select quarternumber_of_year(date '2021-10-01'); quarternumber_of_year-----------------------                     4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173879-1-1.htmlregexp_instr(text,text,integer)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:匹配的其实位置通过正则表达式搜索字符位置,需考虑中文字符select regexp_instr('中1文2','\d',1); regexp_instr--------------            3intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173885-1-1.htmlregexp_similar(text,text,text)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写函数功能:判断输入的字符串是否满足输入的正则表达式select regexp_similar('12345678902','\d+','c'); regexp_similar----------------              1(1 row)cmbgdw=> select regexp_similar('1234567890w','\d+','c'); regexp_similar----------------              0select regexp_similar('1234567890W','\d+[a-z]','c'); regexp_similar----------------              0(1 row)cmbgdw=> select regexp_similar('1234567890W','\d+[a-z]','i'); regexp_similar----------------              1intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173888-1-1.htmlregexp_substr(text,text,integer,integer,text)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:搜索起始位置第四个参数:取匹配到的第几个组字符第五个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写,默认为c函数功能:通过正则表达式截取字符cmbgdw=> select regexp_substr('1中2文','\d',1,1,'i'); regexp_substr--------------- 1(1 row)cmbgdw=> select regexp_substr('1中2文','\d',1,2,'i'); regexp_substr--------------- 2(1 row)textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173890-1-1.htmlregexp_substr(text,text,text)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:是否区分大小写等作用同上面的regexp_substr(text,text,1,1,text)select regexp_substr('1中2文','\d','i'); regexp_substr--------------- 1textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173895-1-1.htmlround2(numeric,integer)td无该函数,用于适配td的奇进偶舍的进制,作用:对于小数需要进行round操作时,0.5这样的需要判断进位的前一位数字,若是奇数,则进一位,若是偶数,则舍弃 select round2(1.25,1); round2--------    1.2(1 row)cmbgdw=> select round2(1.35,1); round2--------    1.4numericTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173896-1-1.htmlstrtok(text,text,integer)适配td的strtok函数,作用是按指定分隔符切割字符串。第一个参数:输入的字符第二个参数:分隔符第三个参数:取第几位select strtok('a,b,c,d',',',3); strtok-------- ctextTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173899-1-1.htmltd_char(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_char('1中2文'); td_char---------       6intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173902-1-1.htmltd_char_length(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_char_length('1中2文'); td_char_length----------------              6intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173904-1-1.htmltd_character(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_character('1中2文'); td_character--------------            6intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173983td_character_length(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_character_length('1中2文'); td_character_length---------------------                   6intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173984td_day_of_calendar(date)输入日期与'1900-01-01'相差的天数select td_day_of_calendar(date '2021-11-10'); td_day_of_calendar--------------------              44509intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173986td_day_of_month(date)一个月的第几天select td_day_of_month(date '2021-11-10'); td_day_of_month-----------------              10intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173987td_day_of_month(timestamp without time zone)一个月的第几天select td_day_of_month( '2021-11-10 10:01:01'); td_day_of_month-----------------              10intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173989td_day_of_week(date)一个周的第几天,在td中,周日为1,周六为7select td_day_of_week(date '2021-11-10'); td_day_of_week----------------              4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173993td_day_of_week(timestamp without time zone)一个周的第几天,在td中,周日为1,周六为7select td_day_of_week( '2021-11-10 10:01:01'); td_day_of_week----------------              4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173994td_day_of_year(date)一个年的第几天select td_day_of_year(date '2021-11-10'); td_day_of_year----------------            314intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173996td_day_of_year(timestamp without time zone)一个年的第几天select td_day_of_year( '2021-11-10 10:10:10'); td_day_of_year----------------            314intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173997td_instr(text,text,integer)返回某个字符的位置,第三个参数是指定搜索位置,类似instr,考虑td与dws字符集影响而新增select td_instr('1中2文','2',1); td_instr---------- 4(1 row)select instr('1中2文','2',1); instr-------     3(1 row)textTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=174000td_left(text,integer)与left类似,考虑td与dws字符集影响而新增,若中间截取了中文,返回固定的\x0F字符select td_left('1中2文',3); td_left--------- 1中select td_left('1中2文',2); td_left--------- 1\x0Fselect left('1中2文',2); left------ 1中textTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=174003td_length(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_length('1中2文'); td_length-----------         6(1 row)cmbgdw=> select length('1中2文'); length--------      4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=174009td_month_begin(date)获取当天月初日期select td_month_begin(date '2021-11-10'); td_month_begin---------------- 2021-11-01dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173937-1-1.htmltd_month_begin(timestamp without time zone)  dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173939-1-1.htmltd_month_end(date)获取当天月末日期select td_month_end(date '2021-11-10'); td_month_end-------------- 2021-11-30dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173941-1-1.htmltd_month_end(timestamp without time zone) dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173942-1-1.htmltd_quarter_of_year(date)一个年的第几个季度select td_quarter_of_year(date '2021-10-01') ; td_quarter_of_year--------------------                  4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173943-1-1.htmltd_regexp_replace(text,text,text)因dws也有regexp_replace,此函数区别区别于dws,因此命名为td_regexp_replace第一个参数:输入的字符串第二个参数:输入的正则表达式第三个参数:匹配后替换的字符select td_regexp_replace('1a2b3c','\d','w'); td_regexp_replace------------------- wawbwctextTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173944-1-1.htmltd_regexp_replace(text,text,text,integer,integer,text)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:匹配到替换的字符第四个参数:搜索起始位置第五个参数:取匹配到的第几个组字符,输入0,则对所有匹配的都做替换,只接受0和1第六个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写,默认为c函数功能:通过正则表达式替换字符select td_regexp_replace('1a2b3c','\d','w',2,1,'i'); td_regexp_replace------------------- 1awb3c(1 row)cmbgdw=> select td_regexp_replace('1a2b3c','\d','w',2,0,'i'); td_regexp_replace------------------- 1awbwctextTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173945-1-1.htmltd_right(text,integer)与right类似,考虑td与dws字符集影响而新增,若中间截取了中文,返回固定的\x0F字符select right('1中2文',2); right------- 2文(1 row)cmbgdw=> select td_right('1中2文',2); td_right---------- 文textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173946-1-1.htmltd_substr(text,integer)与substr类似,考虑td与dws字符集影响而新增,若中间截取了中文,返回固定的\x0F字符select td_substr('1中2文',4); td_substr----------- 2文textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173954-1-1.htmltd_substr(text,integer,integer)select td_substr('1中2文',1,3); td_substr----------- 1中textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173959-1-1.htmltrunc(date,character varying)获取某些类型的日期select trunc(date '2021-11-10','iw');   trunc   ------------ 2021-11-08dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173875-1-1.htmlweeknumber_of_calendar(date)输入日期与'1900-01-01'相差的周数select weeknumber_of_calendar(date '2021-11-10'); weeknumber_of_calendar------------------------                   6358intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173877-1-1.htmlweeknumber_of_year(date)当年的周数,考虑td的一周开始是周日select weeknumber_of_year(date '2021-11-10'); weeknumber_of_year--------------------                 45intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173883-1-1.htmlyearnumber_of_year(date)当年的年数select yearnumber_of_year(date '2021-11-10'); yearnumber_of_year--------------------               2021intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173887-1-1.htmlzeroifnull(anyelement)如果输入是null值,则返回0select zeroifnull(null); zeroifnull------------          0cmbgdw=> create temp table mytbl(col int);cmbgdw=> drop table mytbl;DROP TABLEcmbgdw=> create temp table mytbl(col int);NOTICE:  The 'DISTRIBUTE BY' clause is not specified. Using 'col' as the distribution column by default.HINT:  Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLEcmbgdw=> insert into mytbl select null;INSERT 0 1cmbgdw=> select zeroifnull(col) from mytbl; zeroifnull------------          0analyelementTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173891-1-1.htmlzeroifnull(unknown)  intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173891-1-1.html
  • [项目实践] DWS自定义函数列表
    函数名函数说明样例返回说明兼容对象语言位置ADD_MONTHS2(p1,p2) 当前日期 P1 增加 p2 个月的月末测试案例: select  ADD_MONTHS2('2018-04-22',2); 输出: 20180630dateTDC语言https://bbs.huaweicloud.com/forum/thread-173862-1-1.htmlADD_MONTHS3(p1,p2)当前日期 P1 增加 p2 个月的月末测试案例: select  ADD_MONTHS3(CAST('20180502' AS DATE FORMAT 'YYYYMMDD'),3)输出: 20180831dateTDC语言 DPT_MOB12(p1,p2)计算变量VAR514测试案例:select  DPT_MOB12('1010101',30);输出: 1intergerTDC语言  edit_distance_similarity(p1,p2)比较两个字符串的相似度测试案例:select edit_distance_similarity('河北沧州东朔股份有限公司','河北沧州东朔股份有限公司')输出: 100select edit_distance_similarity('河北沧州东朔股份有限公司','沧州东朔房地产开发又发公司')输出: 50intergerORACLEC语言 max_col(p1,p2)计算浮点数最大值测试案例:select  max_col(3.3,2.2);输出: 3.30floatTDC语言 min_col(p1,p2)计算浮点数最小值测试案例:select  min_col(3.3,2.2);输出: 2.20floatTDC语言 month_between(p1,p2)间隔月份测试案例:select  month_between(CAST('20180422' AS DATE FORMAT 'YYYYMMDD'),CAST('20181202' AS DATE FORMAT 'YYYYMMDD'))输出: 7intergerTDC语言 month_between1(p1,p2) P1(YYYYMM)-P2(YYYYMM)的月份数测试案例:select  month1_between(CAST('20180422' AS DATE FORMAT 'YYYYMMDD'),CAST('20181202' AS DATE FORMAT 'YYYYMMDD'))输出: -8intergerTDC语言 month_between1(p1,p2) P1(YYYYMM)-P2(YYYYMM)的月份数测试案例:select  month_between(CAST('20180422' AS DATE FORMAT 'YYYYMMDD'),CAST('20181202' AS DATE FORMAT 'YYYYMMDD'))输出: 7intergeroracleC语言 specialdata(inputdata varchar,inputtype varchar)根据获取的时间类型,获取对应的时间本月初:specialdate('20190806',11),返回时间:20190801本月末:specialdate('20190806',12),返回时间:20190831上月初:specialdate('20190806',13),返回时间:20190701上月末:specialdate('20190806',14),返回时间:201907031本季初:specialdate('20190806',21),返回时间:20190701本季末:specialdate('20190806',22),返回时间:20190930上季初:specialdate('20190806',23),返回时间:20190301上季末:specialdate('20190806',44),返回时间:20190630本年初:specialdate('20190806',31),返回时间:20190101本年末:specialdate('20190806',32),返回时间:201901231上年初:specialdate('20190806',33),返回时间:20180101上年末:specialdate('20190806',34);返回时间:201801230dateTDplsql substring_index(str,delim,count)按关键字截取字符串 例:select substring_index('blog.jb51.net','.', 2) as abstract from my_content_t结果:blog.jb51 textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173882-1-1.htmlchar2hexint(text)GBK字符集下的字符的16进制select char2hexint('1中2文'); char2hexint -------------- 31D6D032CEC4textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173886-1-1.htmlchars(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select chars('1中2文'); chars-------     6integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173892-1-1.htmldaynumber_of_calendar(date)输入日期与'1900-01-01'相差的天数select daynumber_of_calendar(current_date); daynumber_of_calendar-----------------------                 44508integerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173897daynumber_of_month(date)一个月的第几天select daynumber_of_month(date '2021-11-09'); daynumber_of_month--------------------                  9integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173900-1-1.htmldaynumber_of_week(date)一个周的第几天,在td中,周日为1,周六为7select daynumber_of_week(date '2021-11-07'); daynumber_of_week-------------------                 1integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173909-1-1.htmldaynumber_of_year(date)一个年的第几天select daynumber_of_year(date '2021-11-06'); daynumber_of_year-------------------               310integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173911-1-1.htmllpad(character varying,integer,character varying)左边填充,td中1个中文占2个字符,导致td与dws结果不一样select public.lpad('1中2文',10,'#');    lpad   ------------ ####1中2文textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-174007-1-1.htmlmonthnumber_of_year(date)一个年的第几月select monthnumber_of_year(date '2021-11-10'); monthnumber_of_year---------------------                  11integerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173927-1-1.htmlmonths_between(date,date)日期相差月份数量select months_between(date '2021-11-10',date '2021-09-20'); months_between----------------         1.6774numericTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173935&page=1&authorid=&replytype=&extra=#pid1396442months_between_double(date,date)日期相差月份数量(中间函数),一般不使用,因此c函数只能返回double类型,但一般函数返回integer。 double precisionTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173936numtoyminterval(integer,character varying)数字转interval,与td保持一致,第二个参数输入只能是YEAR或者MONTHselect numtoyminterval(100, 'MONTH'); numtoyminterval----------------- 8 years 4 monsintervalTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173872-1-1.htmloadd_months(date,integer)获取多个月以后(以前)的同样的日期。若是月末取月末(区别与add_months)select oadd_months(date '2020-02-29',-1); oadd_months------------- 2020-01-31select oadd_months(date '2020-02-28',1); oadd_months------------- 2020-03-28dateTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173876quarternumber_of_year(date)一个年的第几个季度select quarternumber_of_year(date '2021-10-01'); quarternumber_of_year-----------------------                     4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173879-1-1.htmlregexp_instr(text,text,integer)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:匹配的其实位置通过正则表达式搜索字符位置,需考虑中文字符select regexp_instr('中1文2','\d',1); regexp_instr--------------            3intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173885-1-1.htmlregexp_similar(text,text,text)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写函数功能:判断输入的字符串是否满足输入的正则表达式select regexp_similar('12345678902','\d+','c'); regexp_similar----------------              1(1 row)cmbgdw=> select regexp_similar('1234567890w','\d+','c'); regexp_similar----------------              0select regexp_similar('1234567890W','\d+[a-z]','c'); regexp_similar----------------              0(1 row)cmbgdw=> select regexp_similar('1234567890W','\d+[a-z]','i'); regexp_similar----------------              1intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173888-1-1.htmlregexp_substr(text,text,integer,integer,text)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:搜索起始位置第四个参数:取匹配到的第几个组字符第五个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写,默认为c函数功能:通过正则表达式截取字符cmbgdw=> select regexp_substr('1中2文','\d',1,1,'i'); regexp_substr--------------- 1(1 row)cmbgdw=> select regexp_substr('1中2文','\d',1,2,'i'); regexp_substr--------------- 2(1 row)textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173890-1-1.htmlregexp_substr(text,text,text)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:是否区分大小写等作用同上面的regexp_substr(text,text,1,1,text)select regexp_substr('1中2文','\d','i'); regexp_substr--------------- 1textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173895-1-1.htmlround2(numeric,integer)td无该函数,用于适配td的奇进偶舍的进制,作用:对于小数需要进行round操作时,0.5这样的需要判断进位的前一位数字,若是奇数,则进一位,若是偶数,则舍弃 select round2(1.25,1); round2--------    1.2(1 row)cmbgdw=> select round2(1.35,1); round2--------    1.4numericTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173896-1-1.htmlstrtok(text,text,integer)适配td的strtok函数,作用是按指定分隔符切割字符串。第一个参数:输入的字符第二个参数:分隔符第三个参数:取第几位select strtok('a,b,c,d',',',3); strtok-------- ctextTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173899-1-1.htmltd_char(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_char('1中2文'); td_char---------       6intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173902-1-1.htmltd_char_length(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_char_length('1中2文'); td_char_length----------------              6intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173904-1-1.htmltd_character(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_character('1中2文'); td_character--------------            6intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173983td_character_length(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_character_length('1中2文'); td_character_length---------------------                   6intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173984td_day_of_calendar(date)输入日期与'1900-01-01'相差的天数select td_day_of_calendar(date '2021-11-10'); td_day_of_calendar--------------------              44509intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173986td_day_of_month(date)一个月的第几天select td_day_of_month(date '2021-11-10'); td_day_of_month-----------------              10intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173987td_day_of_month(timestamp without time zone)一个月的第几天select td_day_of_month( '2021-11-10 10:01:01'); td_day_of_month-----------------              10intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173989td_day_of_week(date)一个周的第几天,在td中,周日为1,周六为7select td_day_of_week(date '2021-11-10'); td_day_of_week----------------              4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173993td_day_of_week(timestamp without time zone)一个周的第几天,在td中,周日为1,周六为7select td_day_of_week( '2021-11-10 10:01:01'); td_day_of_week----------------              4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173994td_day_of_year(date)一个年的第几天select td_day_of_year(date '2021-11-10'); td_day_of_year----------------            314intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173996td_day_of_year(timestamp without time zone)一个年的第几天select td_day_of_year( '2021-11-10 10:10:10'); td_day_of_year----------------            314intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=173997td_instr(text,text,integer)返回某个字符的位置,第三个参数是指定搜索位置,类似instr,考虑td与dws字符集影响而新增select td_instr('1中2文','2',1); td_instr---------- 4(1 row)select instr('1中2文','2',1); instr-------     3(1 row)textTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=174000td_left(text,integer)与left类似,考虑td与dws字符集影响而新增,若中间截取了中文,返回固定的\x0F字符select td_left('1中2文',3); td_left--------- 1中select td_left('1中2文',2); td_left--------- 1\x0Fselect left('1中2文',2); left------ 1中textTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=174003td_length(text)返回GBK下的字符的字节长度,与UTF8的长度有差异select td_length('1中2文'); td_length-----------         6(1 row)cmbgdw=> select length('1中2文'); length--------      4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=174009td_month_begin(date)获取当天月初日期select td_month_begin(date '2021-11-10'); td_month_begin---------------- 2021-11-01dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173937-1-1.htmltd_month_begin(timestamp without time zone)  dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173939-1-1.htmltd_month_end(date)获取当天月末日期select td_month_end(date '2021-11-10'); td_month_end-------------- 2021-11-30dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173941-1-1.htmltd_month_end(timestamp without time zone) dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173942-1-1.htmltd_quarter_of_year(date)一个年的第几个季度select td_quarter_of_year(date '2021-10-01') ; td_quarter_of_year--------------------                  4intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173943-1-1.htmltd_regexp_replace(text,text,text)因dws也有regexp_replace,此函数区别区别于dws,因此命名为td_regexp_replace第一个参数:输入的字符串第二个参数:输入的正则表达式第三个参数:匹配后替换的字符select td_regexp_replace('1a2b3c','\d','w'); td_regexp_replace------------------- wawbwctextTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173944-1-1.htmltd_regexp_replace(text,text,text,integer,integer,text)第一个参数:输入的字符串第二个参数:正则表达式第三个参数:匹配到替换的字符第四个参数:搜索起始位置第五个参数:取匹配到的第几个组字符,输入0,则对所有匹配的都做替换,只接受0和1第六个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写,默认为c函数功能:通过正则表达式替换字符select td_regexp_replace('1a2b3c','\d','w',2,1,'i'); td_regexp_replace------------------- 1awb3c(1 row)cmbgdw=> select td_regexp_replace('1a2b3c','\d','w',2,0,'i'); td_regexp_replace------------------- 1awbwctextTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173945-1-1.htmltd_right(text,integer)与right类似,考虑td与dws字符集影响而新增,若中间截取了中文,返回固定的\x0F字符select right('1中2文',2); right------- 2文(1 row)cmbgdw=> select td_right('1中2文',2); td_right---------- 文textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173946-1-1.htmltd_substr(text,integer)与substr类似,考虑td与dws字符集影响而新增,若中间截取了中文,返回固定的\x0F字符select td_substr('1中2文',4); td_substr----------- 2文textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173954-1-1.htmltd_substr(text,integer,integer)select td_substr('1中2文',1,3); td_substr----------- 1中textTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173959-1-1.htmltrunc(date,character varying)获取某些类型的日期select trunc(date '2021-11-10','iw');   trunc   ------------ 2021-11-08dateTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173875-1-1.htmlweeknumber_of_calendar(date)输入日期与'1900-01-01'相差的周数select weeknumber_of_calendar(date '2021-11-10'); weeknumber_of_calendar------------------------                   6358intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173877-1-1.htmlweeknumber_of_year(date)当年的周数,考虑td的一周开始是周日select weeknumber_of_year(date '2021-11-10'); weeknumber_of_year--------------------                 45intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173883-1-1.htmlyearnumber_of_year(date)当年的年数select yearnumber_of_year(date '2021-11-10'); yearnumber_of_year--------------------               2021intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173887-1-1.htmlzeroifnull(anyelement)如果输入是null值,则返回0select zeroifnull(null); zeroifnull------------          0cmbgdw=> create temp table mytbl(col int);cmbgdw=> drop table mytbl;DROP TABLEcmbgdw=> create temp table mytbl(col int);NOTICE:  The 'DISTRIBUTE BY' clause is not specified. Using 'col' as the distribution column by default.HINT:  Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLEcmbgdw=> insert into mytbl select null;INSERT 0 1cmbgdw=> select zeroifnull(col) from mytbl; zeroifnull------------          0analyelementTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173891-1-1.htmlzeroifnull(unknown)  intergerTDplsqlhttps://bbs.huaweicloud.com/forum/thread-173891-1-1.html
  • [技术干货] 一则正则表达式的实现方式_regex__search_regex_match
    我们在处理一些文本的时候需要匹配文本中的一些内容,比如需要提取一些介于两者之间的字符的各种情况1、总计金额¥12.3元2、此次这个指数【出生率】提升,【人口数量】略有上升3、前后括号里的文字《防疫指南》等等。上面这些标黄的内容需要怎样提取了?我们可以搜索到很多的正则表达式网站,如  https://c.runoob.com/front-end/854我们可以使用¥.*?元,可以匹配出我们需要的部分,如下所示。然后再把开头与结尾的字符去掉即可 , (?<=¥).*?(?=元)去掉开头¥字符,使用  (?<=¥)去掉结尾元汉字,使用  (?=元)同样  (?<=【).*?(?=】) 的匹配结果为:(?<=《).*?(?=》) 的匹配结果为:将以上正则表达式可以直接复制粘贴到regex_findall控件的正则表达式里即可。regex_findallregex_search
  • [迁移系列] 【TD自定义函数】td_regexp_replace(text,text,text,integer,integer,text)
    函数名称:td_regexp_replace(text,text,text,integer,integer,text)函数说明:第一个参数:输入的字符串第二个参数:正则表达式第三个参数:匹配到替换的字符第四个参数:搜索起始位置第五个参数:取匹配到的第几个组字符,输入0,则对所有匹配的都做替换,只接受0和1第六个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写,默认为c函数功能:通过正则表达式替换字符返回值说明描述:text样例:select td_regexp_replace('1a2b3c','\d','w',2,1,'i'); td_regexp_replace ------------------- 1awb3c(1 row)cmbgdw=> select td_regexp_replace('1a2b3c','\d','w',2,0,'i'); td_regexp_replace ------------------- 1awbwc语言:PLSQL函数定义:CREATE OR REPLACE FUNCTION public.td_regexp_replace(text,text,text,integer,integer,text default 'c'::text) RETURNS text LANGUAGE plpgsql STRICT NOT FENCED SHIPPABLE as $$ DECLARE otext text; begin IF $6 IN ('i','c') and $4 = 1 and $5 = 0 then otext := regexp_replace($1,$2,$3,'g'||$6); ELSIF $6 IN ('i','c') and $4 > 1 and $5 = 0 then otext := td_substr($1,1,$4-1)||regexp_replace(td_substr($1,$4),$2,$3,'g'||$6); ELSIF $6 in ('i','c') and $4 = 1 and $5 = 1 then otext := regexp_replace($1,$2,$3,$6); ELSIF $6 in ('i','c') and $4 > 1 and $5 = 1 then otext := td_substr($1,1,$4-1)||regexp_replace(td_substr($1,$4),$2,$3,$6); ELSIF $4 < 1 THEN raise exception '[9134] The search start position must be greater than 0. which the input is %.',$3; ELSIF $5 not in (1,0) THEN raise exception '[9134] Occurence must be 0 or 1, which the input is %.',$4; ELSE raise exception '[9134] Match option must be ''c'',''i'', which input is %.',$6; END IF; RETURN otext; end; $$ ;
  • [迁移系列] 【TD自定义函数】regexp_substr
    函数名称:regexp_substr(text,text,integer,integer,text)函数说明:第一个参数:输入的字符串第二个参数:正则表达式第三个参数:搜索起始位置第四个参数:取匹配到的第几个组字符第五个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写,默认为c函数功能:通过正则表达式截取字符返回值说明描述:text样例:cmbgdw=> select regexp_substr('1中2文','\d',1,1,'i'); regexp_substr --------------- 1(1 row)cmbgdw=> select regexp_substr('1中2文','\d',1,2,'i'); regexp_substr --------------- 2(1 row)语言:PLSQL函数定义:CREATE OR REPLACE FUNCTION public.regexp_substr(text,text,integer,integer,text default 'c'::text) RETURNS text LANGUAGE plpgsql STRICT NOT FENCED SHIPPABLE as $$ DECLARE otext text; BEGIN IF $5 in ('i','c') AND $4 = 1 and $3 > 0 THEN otext := (regexp_matches(td_substr($1,$3),'('||$2||')','g'||$5))[1] limit 1; ELSIF $3 = 0 THEN raise exception 'The search position must be greater than 0.'; ELSIF $4 > 1 THEN otext := (regexp_matches(td_substr($1,$3),'('||$2||')','g'||$5))[1] limit 1 offset $4 - 1; ELSIF $4 < 1 THEN raise exception 'Occurence must be greater than 0.'; ELSE raise exception '[9134] Match option must be ''c'',''i'', which the input is %.',$5; end if; return otext; end; $$ ;
  • [迁移系列] 【TD自定义函数】regexp_similar
    函数名称:regexp_similar(text,text,text)函数说明:第一个参数:输入的字符串第二个参数:正则表达式第三个参数:是否区分大小写等,输入i为不区分大小写,c为区分大小写函数功能:判断输入的字符串是否满足输入的正则表达式返回值说明描述:interger样例:select regexp_similar('12345678902','\d+','c'); regexp_similar ----------------              1(1 row)cmbgdw=> select regexp_similar('1234567890w','\d+','c'); regexp_similar ----------------              0select regexp_similar('1234567890W','\d+[a-z]','c'); regexp_similar ----------------              0(1 row)cmbgdw=> select regexp_similar('1234567890W','\d+[a-z]','i'); regexp_similar ----------------              1语言:PLSQL函数定义:CREATE OR REPLACE FUNCTION public.regexp_similar(text,text,text default 'c'::text) RETURNS integer LANGUAGE plpgsql STRICT NOT FENCED SHIPPABLE as $$ begin IF $3 in ('i','c') THEN RETURN case when regexp_like($1,'^'||$2||'$',$3) = 't' then 1 else 0 end; ELSE raise exception '[9134] Match option must be ''c'',''i'',which the input is %',$3; END IF; END; $$ ;
  • [迁移系列] 【TD自定义函数】regexp_instr
    函数名称:regexp_instr(text,text,integer)函数说明:第一个参数:输入的字符串第二个参数:正则表达式第三个参数:匹配的起始位置通过正则表达式搜索字符位置,需考虑中文字符返回值说明描述:interger样例:select regexp_instr('中1文2','\d',1); regexp_instr --------------            3语言:PLSQL函数定义:CREATE OR REPLACE FUNCTION public.regexp_instr(text,text) RETURNS integer LANGUAGE plpgsql STRICT NOT FENCED SHIPPABLE as $$ BEGIN IF regexp_substr($1,$2) is null then return 0; else return case when (td_instr($1,regexp_substr($1,$2),0))::int is null then 0 else (td_instr($1,regexp_substr($1,$2),0))::int end; end if; end; $$ ; CREATE OR REPLACE FUNCTION public.regexp_instr(text,text,integer) RETURNS integer LANGUAGE plpgsql STRICT NOT FENCED SHIPPABLE as $$ BEGIN IF regexp_substr(td_substr($1,$3),$2) is null then return 0; ELSIF $3 >= 1 THEN return case when (td_instr($1,regexp_substr($1,$2),0))::int is null then 0 else (td_instr($1,regexp_substr($1,$2),0))::int end; end if; end; $$ ;
  • [迁移系列] 【TD自定义函数】regexp_instr
    函数名称:regexp_instr(text,text,integer)函数说明:第一个参数:输入的字符串第二个参数:正则表达式第三个参数:匹配的起始位置通过正则表达式搜索字符位置,需考虑中文字符返回值说明描述:interger样例:select regexp_instr('中1文2','\d',1); regexp_instr --------------            3语言:PLSQL函数定义:CREATE OR REPLACE FUNCTION public.regexp_instr(text,text) RETURNS integer LANGUAGE plpgsql STRICT NOT FENCED SHIPPABLE as $$ BEGIN IF regexp_substr($1,$2) is null then return 0; else return case when (td_instr($1,regexp_substr($1,$2),0))::int is null then 0 else (td_instr($1,regexp_substr($1,$2),0))::int end; end if; end; $$ ; CREATE OR REPLACE FUNCTION public.regexp_instr(text,text,integer) RETURNS integer LANGUAGE plpgsql STRICT NOT FENCED SHIPPABLE as $$ BEGIN IF regexp_substr(td_substr($1,$3),$2) is null then return 0; ELSIF $3 >= 1 THEN return case when (td_instr($1,regexp_substr($1,$2),0))::int is null then 0 else (td_instr($1,regexp_substr($1,$2),0))::int end; end if; end; $$ ;
  • [新手课堂] Java正则表达式
    此时matches和equals显示的结果相同,返回值都为true,但实际上matches的功能更为强大,可以匹配符合一个模式的字符串集。如: System.out.println("Java is cool".matches("Java.*"));显示的结果同样为true,Java.*为正则表达式。下面将简要介绍正则表达式的功能。1.matches(“x”),匹配的是指定的字符x;System.out.println("Java".matches("B"));    输出falseSystem.out.println("Java".matches("J"));     输出true2.matches("."),匹配的是任意单个字符(换行符除外);System.out.println("Java".matches("J..a"));   输出trueSystem.out.println("Javb".matches("J..a"));   输出false3.matches(“(ab|cd)”),匹配的是ab或者cd;System.out.println("ef".matches("ab|cd"));    输出falseSystem.out.println("ab".matches("ab|cd"));   输出trueSystem.out.println("cd".matches("ab|cd"));   输出true4.matches("[abc]"),匹配的是a或者b或者c;System.out.println("Java".matches("Ja[uxve]a"));   输出true  System.out.println("Java".matches("Ja[uxwe]a"));   输出false5.matches("[^abc]"),匹配的是除了a或者b或者c以外的任何字符;System.out.println("Java".matches("Ja[^uxwe]a"));  输出trueSystem.out.println("Java".matches("Ja[^uxve]a"));   输出false6.matches("[a-z]"),匹配的是a到z;System.out.println("Java".matches("Ja[u-z]a"));   输出trueSystem.out.println("Java".matches("Ja[a-f]a"));   输出false7.matches("[^a-z]"),匹配的是a到z以外的任意字符;System.out.println("Java".matches("Ja[^a-f]a"));   输出trueSystem.out.println("Java".matches("Ja[^u-z]a"));   输出false8..matches("[a-e[m-p]]"),匹配的是a到e或者m到p;System.out.println("Java".matches("Ja[u-z[a-d]]a"));  输出trueSystem.out.println("Java".matches("Ja[h-m[a-d]]a"));   输出false9.matches("[a-e&&[c-p]]"),匹配的是a到e和c到p的交集;System.out.println("Java".matches("Ja[h-m[h-l]]a"));   输出falseSystem.out.println("Java".matches("Ja[a-x[u-x]]a"));   输出true10.matches("\\d"),匹配的是一位数字(等同于[0~9]);System.out.println("Java2".matches("Java(\\d)"));   输出trueSystem.out.println("Javaa".matches("Java(\\d)"));    输出false11.matches("\\D"),匹配的是一位非数字;System.out.println("Javaa".matches("Java(\\D)"));     输出trueSystem.out.println("Java2".matches("Java(\\D)"));     输出false12.matches("\\w"),匹配的是单词字符(单词字符是所有的字母,数字和下划线字符);System.out.println("Javaa".matches("Java(\\w)"));     输出trueSystem.out.println("Java$".matches("Java(\\w)"));     输出false13.matches("\\W"),匹配的是非单词字符;System.out.println("Java$".matches("Java(\\W)"));    输出trueSystem.out.println("Java2".matches("Java(\\W)"));     输出false14.matches("\\s"),匹配的是空白字符;System.out.println("Java ".matches("Java(\\s)"));    输出trueSystem.out.println("Javaa".matches("Java(\\s)"));   输出false15.matches("\\S"),匹配的是非空白字符;System.out.println("Javaa".matches("Java(\\S)"));    输出trueSystem.out.println("Java ".matches("Java(\\S)"));   输出false  16.matches("p*"),匹配的是0或者多次出现模式p;System.out.println("abab".matches("(ab)*"));   输出trueSystem.out.println("aaaa".matches("(ab)*"));   输出false17.matches("p+"),匹配的是1次或者多次出现模式p;System.out.println("able".matches("(ab)+.*"));   输出trueSystem.out.println("a".matches("a+b*"));   输出trueSystem.out.println("c".matches("a+b*"));  输出false18.matches("p?"),匹配的是0或者1次出现模式p;System.out.println("Java".matches("J?Java"));   输出trueSystem.out.println("ava".matches("J?ava"));   输出trueSystem.out.println("Java".matches("J?Mava"));   输出false19.matches("p{n}"),匹配的是正好出现n次模式p;System.out.println("Java".matches("Ja{1}.*"));  输出trueSystem.out.println("Java".matches(".{2}"));    输出false20.matches("p{n,}"),匹配的是至少出现n次模式p;System.out.println("aaaa".matches("a{1,}"));   输出trueSystem.out.println("aaaa".matches("a{5,}"));    输出false21.matches("p{n,m}"),匹配的是出现n到m次(两侧都包含)模式p;System.out.println("aaaa".matches("a{1,4}"));   输出trueSystem.out.println("aaaa".matches("a{6,8}"));   输出false22.matches("\p{P}"),匹配的是一个标点字符;System.out.println("J?a".matches("J\\p{P}a"));  输出trueSystem.out.println("Jaa".matches("J\\p{P}a"));   输出false===================================================="*"等同于{0,},"+"等同于{1,},"?"等同于"{0,1}。其中*,?,{n},{n,},{n,m},+被称为量词符,要注意不要在重复量词符中使用空白。替换和拆分字符串replaceFirst的作用是替换匹配到的第一个字符串System.out.println("Java Java Java".replaceFirst("v\\w","wi"));   输出Jawi Java JavareplaceAll的作用是替换匹配到的所有字符串System.out.println("Java Java Java".replaceAll("v\\w","wi"));    输出Jawi Jawi Jawi拆分split(regex)方法使用使用匹配的分隔符将一个字符串分割成子字符串。split(regex,limit)方法,limit参数确定模式匹配多少次。如果limit<=0,则此方法等同于第一种方法,反之,则最多匹配limit-1次。注意:默认情况下,量词符都是尽可能多次地进行匹配。例如:System.out.println("Jaaavaa".replaceFirst("a+", "R"));    输出JRvaa可以通过在后面加"?"的方法来减少匹配的次数。例如:System.out.println("Jaaavaa".replaceFirst("a+?", "R"));此时就会输出JRaavaa
  • [技术干货] 正则表达式
    正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。什么是正则表达式?正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可以是一个简单的字符,或一个更复杂的模式。正则表达式可用于所有文本搜索和文本替换的操作。语法/正则表达式主体/修饰符(可选)其中修饰符是可选的。实例:var patt = /runoob/i实例解析:/runoob/i  是一个正则表达式。runoob  是一个正则表达式主体 (用于检索)。i  是一个修饰符 (搜索不区分大小写)。使用字符串方法在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。search() 方法使用正则表达式实例使用正则表达式搜索 "Runoob" 字符串,且不区分大小写:var str = "Visit Runoob!"; var n = str.search(/Runoob/i);输出结果为:6search() 方法使用字符串search 方法可使用字符串作为参数。字符串参数会转换为正则表达式:实例检索字符串中 "Runoob" 的子串:var str = "Visit Runoob!"; var n = str.search("Runoob");replace() 方法使用正则表达式实例使用正则表达式且不区分大小写将字符串中的 Microsoft 替换为 Runoob :var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"Runoob");结果输出为:replace() 方法使用字符串replace() 方法将接收字符串作为参数:var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","Runoob");
  • [技术干货] CLI配置项介绍
    用户通过“resources>cli-driver.properties”文件,可以定制CLI设备驱动信息,用于解析和识别设备的CLI回显。常见配置项详细信息如下表所示。表1 配置项配置项名称配置值示例含义与作用userModePrompt^<HUAWEI.*>$用户模式下设备命令行提示符正则表达式,用于解析返回报文是否为用户模式提示符。privilegedModePrompt^\\[[~*]HUAWEI.*\\]$特权模式下设备命令行提示符正则表达式,用于解析返回报文是否为特权模式的提示符。promptSkipRegex(?s).*((Error)|(WARNING)|(MINOR)|(INFO)):[ ]{1}[^@prompt@.]{1,}(@prompt@){1}$跳过解析的提示符正则表达式,用于跳过解析返回报文中的提示符场景。正则表达式中的@prompt@将被替换为userModePrompt或privilegeModePrompt配置值。userNameResponseLogin:登录时提示输入用户名的命令行提示符匹配规则,用于解析返回报文是否为输入用户名提示符。passwordResponsePassword:登录时提示输入密码的命令行提示符匹配规则,用于解析返回报文是否为输入密码提示符。InitCommanddisplay users初始连接设备后发送的初始化命令,用于系统识别到成功登录设备后自动执行和显示的初始化命令。keepAliveCommandShow time保活连接命令,用于定期向设备发送该命令以保持连接。cliTxCreateCommandreturn\n事务创建命令,用于发送配置前先下发创建事务。cliTxCommitCommandcommit\n事务提交命令,用于配置提交后再下发提交事务。cliTxSaveCommandreturn\n事务保存命令,用于配置提交成功后再下发事务保存。cliTxCancelCommandclear configuration candidate \n事务取消命令,用于取消配置等情况时下发事务取消。cliTxCancelRetryTimes3取消事务重试次数,用于设备事务异常时,取消事务可重试的次数。abortCommandquit异常停止命令,用于CLI协议出现异常时,通过该命令强制终止当前命令的执行,最好配置成Ctr+C的unicode码。未配置值时,CLI协议异常时处理策略是先断连,再建连。errorMessagePattern^Error:?[ ]{1}.*配置Error正则表达式,用于解析返回报文中是否为配置失败的信息。ignoreMessagePatternrandomvalueshould#not#match忽略配置Error匹配正则表达式,用于当解析返回报文中为配置失败情况时但该场景又需要被忽略时。warningMessagePattern^((WARNING)|(MINOR)|(INFO)):[ ]{1}.*回显信息告警正则表达式,用于解析返回报文是否为告警信息。maxResponseSize400执行一条命令后,能够允许的最大返回报文大小,单位为KB。用于限制超大报文等异常场景。showConfigCommandreturn\ndisplay current-configuration配置全量读的设备命令,用于查询设备配置。showConfigSkipRegex^(--|echo|#).*$不需要解析的关键字正则表达式,用于忽略解析含有该关键字正则表达式的返回报文。configModeCommandsystem-view配置模式进入命令,用于下发实际配置命令(创建、删除、更新等)前下发该命令进入配置模式。partialReadCommandreturn\nsystem-view\n${context}\ndisplay this配置部分读的设备命令,用于查询设备部分配置。提前构造部分读命令,然后替换${context}生成具体的部分读命令。indentationSequence\u0020\u0020\u0020\u0020命令行缩进序列,用于解析设备命令行的缩进序列。HUAWEI设备通常左缩进,四个空格键的缩进序列。exitSubmodeCommandquit返回上级视图的命令,用于返回上级视图下发该命令。通常为quit、exit。submodeStartSequence@indent@子模式开始序列,用于解析设备命令行子模式开始的缩进序列。@indent@表示缩进一级。submodeEndSequence@dedent@子模式结束序列,用于解析设备命令行子模式结束的缩进序列。@dedent@表示反缩进一级。negateCommmandundo\u0020逆命令表达式,用于解析设备命令行的no、undo等关键字,识别是否为逆命令。shutdownCommand\u0020shutdownshutdown命令表达式,用于解析当下发delete命令时设备返回报文中含有shutdown等关键字,需要用户输入后才能继续的情况。contextSupportsSinglelineCommandfalse表示删除命令是否长命令模式,用于配置是否支持解析长命令模式。HUAWEI设备不支持,所以配置成false。NOKIA既支持短命令也支持长命令。配置值包括true和false。defaultDeleteOperationWithValuefalse表示删除叶子节点时,生成的命令是否需要带上叶子的值。用于其他厂家设备的特殊情况,HUAWEI设备不需要,所以配成false。配置值包括true和false。supportsSinglelineCommandfalse表示创建、修改命令是否支持长命令模式。用于其他厂家设备的特殊情况,HUAWEI设备不支持,所以配置成false。配置值包括true和false。cliInteractionMatchKeyWarning.*(base on this interface, continue| BGP process will be deleted. Continue).*y(es)/n(o)交互匹配信息正则表达式,用于下发设备命令时,解析设备返回提示信息,需要用户通过命令做出交互选择。支持分号分隔多个正则表达式。cliInteractionGoOnCommondy交互匹配信息响应,用于解析出设备交互匹配信息时,对设备进行响应,与cliInteractionMatchKey配置项组合使用。支持分号分隔多个正则表达式,分号数量需要跟cliInteractionMatchKey对应。judgeContinueCondition.*--- More ---*判断继续条件的正则表示式,用于解析返回报文是否包含继续条件正则表达式。常用于查询的配置没有显示完整的情况。partialReadSubmodefalse部分读取子模式,用于配置是否支持通过进入子视图,然后输入一条命令,查询部分配置。例如,HUAWEI支持进入相应视图,display this查询当前配置,就配置为true。配置值包括true和false。continueReadingCommand\u0020继续读取命令,用于查询设备配置时,设备没有全部返回查询的配置,通过该命令,让设备继续返回配置。changePasswordPrompt^The password needs to be changed\\. Change now\\? \\[Y\\/N\\].*修改密码提示正则表达式,用于解析与设备建连时设备要求修改密码的提示信息。skipChangePasswordCmdN连接提示更改密码时下发的命令,用于解析出changePasswordPrompt提示信息时,下发设备的命令。cliNoPrintCommandPattern非打印命令模式,用于打印日志时过滤敏感命令,支持以分号分隔,默认空不过滤敏感命令。channelOpeningTimeout10000建连通道开启超时时间,用于防止通道建连异常长时间空耗资源。单位ms。readMessageTimeout10000通道读取返回报文超时时间,用于防止通道异常长时间读取报文。单位ms。cliInteractionCommand批量下发配置时可能出现交互的命令,用于提前识别批量配置需要交互的命令。以分号分隔,可配置多条命令。ifBatchSendCommandoff是否启用拼接命令方法的批量下发配置,用于其他厂家设备支持启用拼接命令方法批量下发配置时。配置值包括on和off。cliCmdAppender0命令回车符,用于解析命令行中的回车符。通常回车符为\r 或\n 。配置为1表示\n ;配置为1表示\r。
总条数:51 到第
上滑加载中