日期:2014-05-17  浏览次数:21861 次

创建视图时使用自定义函数时提示:标识符无效
本帖最后由 hwhtj 于 2014-03-28 14:42:56 编辑
如题
创建视图时使用自定义函数时提示:标识符无效
脚本如下
create or replace view v_baseobject as
select .……(CASE WHEN A.SSSSOBJECTNAME LIKE '^1%' THEN jm_decryption(A.SSSSOBJECTNAME) ELSE A.SSSSOBJECTNAME END) as ssssobjectnam…………
 from countydata.BASEOBJECT a  Left Join countydata.BASEOBJECTACCOUNT b on a.OBJECTID = b.OBJECTID inner Join countydata.OBJECTGH d on a.OBJECTID = d.ID;

其中jm_decryption为自定义函数

运行时提示:oracle“ORA-00904 标识符无效

求助:如何解决
------解决方案--------------------
引用:
如题
创建视图时使用自定义函数时提示:标识符无效
脚本如下
create or replace view v_baseobject as
select .……(CASE WHEN A.SSSSOBJECTNAME LIKE '^1%' THEN jm_decryption(A.SSSSOBJECTNAME) ELSE A.SSSSOBJECTNAME END) as ssssobjectnam…………
 from countydata.BASEOBJECT a  Left Join countydata.BASEOBJECTACCOUNT b on a.OBJECTID = b.OBJECTID inner Join countydata.OBJECTGH d on a.OBJECTID = d.ID;

其中jm_decryption为自定义函数

运行时提示:oracle“ORA-00904 标识符无效

求助:如何解决

不一定是函数引起的,看看其他地方是不是有错,还有就是要有函数的执行权限
------解决方案--------------------
引用:
把函数去掉,可以运行


呵呵,真是天资聪颖。去掉函数可以运行有个P用。
单独运行带函数的sql,可以运行就授权,不可以运行就去把函数改对了。
------解决方案--------------------
引用:
把函数去掉,可以运行

我测试了一下,调用自定义的函数没有问题。出现问题的原因可能是:1.输入的参数不对 2.函数不属于当前SCHEME,需要在函数名前加上SCHEME. 3.没有权限。

实在想不到其他原因了