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應單獨檢查每個值並返回特定於有問題的列的錯誤消息。我也很好奇電話號碼會有字母,但不是'+','(',')'和' - '。 –
第一個答案有一個例子,它不會像問題那樣表達,編輯以解決這種情況,並且如果您需要不同的正則表達式驗證,請檢查 –