UNRESOLVED_ROUTINE错误类
不能解决函数< routineName >
在搜索路径< searchPath >
。
解释
持久化功能由三名部分:<目录>。<模式>。<关系>
。如果你不指定名称的所有三个部分,这是隐式地使用当前目录或当前模式完成。这是类似于你的工作目录文件系统如何影响哪些文件可以看到,除非你完全指定路径。
临时函数只存在于会话或查询,绝不是合格的。
最常见的原因找不到一个函数是:
这个函数不存在。
函数名是拼写错误。
用户定义函数位于一个不同的模式。
用户定义的函数并不位于当前模式。
你不能查看用户定义函数,因为你没有访问权限。
您正试图调用的内置函数不可用这个版本的砖。
缓解
减轻通过回顾以下错误。
你拼写函数名不正确吗?
使用“<模式>显示功能”验证正确的函数名。
函数是一个不同的模式吗?
如果函数是坐落在统一目录,目录运行以下查询:
选择routine_schema从information_schema.routines在哪里routine_name=“< routinename >”
这个列表模式在当前目录功能所在。
如果函数位于外部目录,统一使用“显示模式”找到候选模式。使用“<模式>显示功能”探测器的功能。
你没有完全限定名称,和的结果吗的值current_schema ()”函数的限定名称不匹配?
有资格
functionName
模式和目录,或运行“使用模式”设置隐式模式。你参考一个临时的函数,但在之前,过期,或不同的会话吗?
重新创建临时函数使用“创建临时函数< routineName >…”,或者切换到使用持久化功能。
你想发出一个DDL语句,如
下降函数
以防对象存在吗?问题声明使用
如果存在
条款,如:“下降函数< routineName >如果存在”。你知道这个函数是存在的,但你不能看到它吗的显示功能吗?
联系管理员获得访问功能。您可能还需要访问模式和目录。
如何解决这个错误的更多信息,参见函数解析。
例子
>创建模式如果不存在myschema;>创建或取代函数myschema。myfunc()返回INT返回5;- - -——函数名拼写错误- - ->选择myschema。myfun();(UNRESOLVED_ROUTINE]不能解决函数”myschema”。”myfun”在搜索路径(”系统”。”内装式”,”系统”。”会话”,”spark_catalog”。”默认的”]。行1pos7——使用显示函数来找到正确的nme>显示用户功能在myschema;spark_catalog。myschema。myfunc——正确的拼写>选择myschema。myfunc();5- - -限定符被拼错- - ->创建模式如果不存在wrongschema;>选择wrongschema。myfunc;(UNRESOLVED_ROUTINE]不能解决函数”wrongschema”。”myfunc”在搜索路径(”系统”。”内装式”,”系统”。”会话”,”spark_catalog”。”默认的”]。行1pos7——找到候选模式>显示模式;myschemawrongschema——验证候选模式中存在的函数>显示用户功能在myschema;spark_catalog。myschema。myfunc>选择myschema。myfunc();5- - -——改变当前模式找到一个不合格的函数- - ->选择myfunc();(UNRESOLVED_ROUTINE]不能解决函数”myfunc”在搜索路径(”系统”。”内装式”,”系统”。”会话”,”spark_catalog”。”默认的”]。行1pos7>使用模式myschema;选择myfunc();5