简体   繁体   English

将其中包含 to_number 和 value_error 预期的 oracle UDF function 转换为 AWS RDS maria db

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM