[英]Convert oracle UDF function with to_number and value_error expection in it to AWS RDS maria db
create or replace FUNCTION num_check (p_string IN VARCHAR2) RETURN NUMBER IS v_new_num NUMBER;创建或替换 FUNCTION num_check (p_string IN VARCHAR2) RETURN NUMBER IS v_new_num NUMBER; BEGIN v_new_num:= TO_NUMBER(p_string);
开始 v_new_num:= TO_NUMBER(p_string); RETURN v_new_num;
返回 v_new_num; EXCEPTION WHEN VALUE_ERROR THEN RETURN NULL;
当 VALUE_ERROR 然后返回 NULL 时出现异常; END num_check;
结束数字检查;
CREATE FUNCTION num_check(P_STRING TEXT)
RETURN DOUBLE
IS
v_new_num DOUBLE;
EXIT HANDLER FOR 1366
BEGIN
RETURN NULL;
END;
BEGIN
v_new_num := CAST(REPLACE(p_string, ',', '.') AS DECIMAL (65, 30));
RETURN v_new_num;
END num_check;
set sql_mode = DEFAULT;
The above code conversion to maria db partially works, which cannot produce value_error similar like oracle.上面的代码转换为 maria db 部分有效,它不能产生类似于 oracle 的 value_error。
Oracle: SELECT num_check('994532.145188.88888888') FROM dual -- null Oracle: SELECT num_check('994532.145188.88888888') 来自双 -- null
Maria db: SELECT num_check('994532.145188.88888888') -- 994532.145188玛丽亚数据库:SELECT num_check('994532.145188.88888888') -- 994532.145188
How to produce the same result in maria db.如何在 maria db 中产生相同的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.