0
我想验证TAX,NAME,TELEPHONE NO。那些应该是字母数字的。所以使用这种方法,但在这里我想知道我可以用简单的方法做到这一点,而不使用这么多的“AND”。Oracle正则表达式REGEXP_LIKE多列
IF REGEXP_LIKE(i.TAX, '^[A-Za-z0-9]+$') AND REGEXP_LIKE(i.NAME, '^[A-Za-z0-9]+$') AND REGEXP_LIKE(VarTelephone , '^[A-Za-z0-9]+$') THEN
INSERT INTO BIZZXE_V2_SCH.SUPPLIER_CONTACTS
(CONTACT_ID, SUPPLIER_ID, ADDRESS, ZIP_CODE, COUNTRY_ID, CITY_ID, TELEPHONE, FAX, EMAIL, XMLCOL)
VALUES(VarContactId ,VarId, k.ADDRESS, k.ZIP_CODE, k.COUNTRY_ID, k.CITY_ID, k.TELEPHONE, k.FAX, k.EMAIL, VarContactDetail);
ELSE
-- Start Return RVAL Messages --
RVAL.EX_CODE:=1;
RVAL.MESSAGE:='Supplier Tax and Supplier Name should be apha-numeric that is numbers letters and symbols..!';
-- End Return RVAL Messages --
END IF;
虽然这回答了这个问题,但我认为这是一个糟糕的做法。 OP应单独检查每个值并返回特定于有问题的列的错误消息。我也很好奇电话号码会有字母,但不是'+','(',')'和' - '。 –
第一个答案有一个例子,它不会像问题那样表达,编辑以解决这种情况,并且如果您需要不同的正则表达式验证,请检查 –