我正在編寫一個簡單的PL/SQL來格式化員工CUIL(社會安全ID)問題是我想用一個簡單的' - '代替一個或多個' - '或'/',而且我的代碼工作正常爲空間和'/',但我沒有幸運的另一個。你可以幫我嗎?由於PL/SQL函數中可以使用正則表達式嗎?
CREATE OR REPLACE FUNCTION formatear_cuit_cuil(p_cuit_cuil VARCHAR2)
RETURN VARCHAR2
IS
v_length VARCHAR2(50) := p_cuit_cuil;
BEGIN
IF
LENGTH(REGEXP_REPLACE(v_length, '[/ | |.]+')) <> 11 THEN
RETURN 'El CUIT/CUIL no tiene el largo correcto';
END IF;
IF
REGEXP_LIKE(
p_cuit_cuil,
'^[0-9][0-9][ /-]+[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][ /-]+[0-9]$'
) THEN
RETURN REGEXP_REPLACE(p_cuit_cuil, '/+| +', '-');
ELSE
RETURN 'CUIT/CUIL no tiene el formato correcto';
END IF;
EXCEPTION
WHEN OTHERS THEN
RETURN 'Error al formatear CUIT/CUIL';
END formatear_cuit_cuil;
例,工程
例不起作用
我不是專家替換它們,但你不希望' - +'如你的'替換'電話的一部分? 'RETURN REGEXP_REPLACE(p_cuit_cuil,'/ + | + | - +',' - ');' – MarcinJuraszek
我無法對您的評論投票。謝謝你的幫助! –