美文网首页
ORACLE 自定义函数传参问题导致的ORA-01403错误

ORACLE 自定义函数传参问题导致的ORA-01403错误

作者: 那五常 | 来源:发表于2018-10-19 17:17 被阅读0次

    通常情况下,函数的参数在函数体内,作为传值一般可以直接接用,但今天遇到一个问题,着实调试了几个小时,才定位原因。使用函数体内声明变量,接收参数,然后在sql中使用则一切正常。

    后面测试了几番,专门建表测试,问题却无法复现,在真实场景中,问题依旧,只有更换中内部变量才正常,具体原因,不得而知。

    具体如下:

    1、数据情况

    2、函数

    create or replace function f_get_openid(p_vkid number) return varchar2 is

    vOpenID t_member.open_id%type;

    begin

        select open_id

        into vOpenID

        from t_member

        where vk_id=p_vkid;

        return vOpenID;

    exception

        when others then

        return 'error';

    end;

    3、用函数查询

    4、修改函数

    create or replace function f_get_openid(p_vkid number) return varchar2 is

    vOpenID t_member.open_id%type;

    vVkID t_member.vk_id%type :=p_vkid;

    begin

        select open_id

        into vOpenID

        from t_member

        where vk_id=vVkID;

        return vOpenID;

    exception

        when others then

        return 'error';

    end;

    5、用函数查询

    相关文章

      网友评论

          本文标题:ORACLE 自定义函数传参问题导致的ORA-01403错误

          本文链接:https://www.haomeiwen.com/subject/mdhuzftx.html