折雨的天空

博客介绍:本博客当前共有文章【989】篇,总阅读量【5,641,154】次,第一篇博客发表于【2011年04月06日 10时34分】,距今已【5242】天,感谢您的使用!

您的位置:折雨的天空 >其他技术> 给自定义函数创建索引时,报错:SQL 错误 [30553] [99999]: ORA-30553: 函数不能确定

给自定义函数创建索引时,报错:SQL 错误 [30553] [99999]: ORA-30553: 函数不能确定

需要在自定义函数返回值的地方,增加关键字:DETERMINISTIC


原来的函数:

CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)RETURN VARCHAR2
IS
    retval varchar2(32);
BEGIN
    IF LENGTHB(passwd)>0 THEN
    retval := LOWER(utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd))) ;
    RETURN retval;
    ELSE
    RETURN passwd;
  END IF;
END;

修改后:


CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)RETURN VARCHAR2 DETERMINISTIC
IS
    retval varchar2(32);
BEGIN
    IF LENGTHB(passwd)>0 THEN
    retval := LOWER(utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd))) ;
    RETURN retval;
    ELSE
    RETURN passwd;
  END IF;
END;

------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------

转载请注明本文标题和链接:《给自定义函数创建索引时,报错:SQL 错误 [30553] [99999]: ORA-30553: 函数不能确定

奖励一下

取消

分享不易,烦请有多多打赏,如您也困难,点击右边关闭即可!

扫码支持
扫码打赏,5元,10元,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

-秒后自动关闭,如已打赏,或者不愿打赏,请点击右上角关闭图标。

发表评论

路人甲 表情
看不清楚?点图切换