文档解释
ORA-19193: XQST0045: It is a static error if the function name in a function declaration is in one of the following namespaces: http://www.w3.org/XML/1998/namespace, http://www.w3.org/2001/XMLSchema, http://www.w3.org/2001/XMLSchema-instance, http://www.w3.org/2005/04/xpath-functions, http://www.w3.org/2005/04/xpath-datatypes
Cause: An error occurred during the processing of the XQuery expression.
Action: Check the detailed error message for the possible causes.
。
XQST0045错误指出,在函数定义中,如果函数名被标准化位于以下名字空间中,就无法被接受:http://www.w3.org/XML/1998/namespace,http://www.w3.org/2001/XMLSchema,http://www.w3.org/2001/XMLSchema-instance,http://www.w3.org/2005/04/xpath-functions,http://www.w3.org/2005/04/xpath-datatypes。
官方解释
常见案例
例1. 如果一个函数名称与标准函数名称相同,但位于不同名称空间中,则可能会出现XQST0045错误:
declare function http://example.com/upper-case($input as xs:string) as xs:string {
upper-case($input)
};
正常处理方法及步骤:
正确处理该错误的步骤是:
1. 确认正在定义的函数的完整名称,包括它的名称空间。
2. 确认此函数名称是否匹配上述姓名空间中的标准函数。
3. 如果它与其中一个函数重名,应更改正在定义的函数名称,以便两者不再重名。
4. 无论重名与否,都应确保正在定义的函数名称不位于上述名称空间中。