DB2 字符串分词器
DB2 String Tokenizer
我正在使用如下的字符串分词器代码——它来自我之前的问题。它在没有 QUALIFIER 的情况下工作正常但是当我向它添加 QUALIFIER KGT(架构名称)时 - 我收到错误消息:
THE CLAUSES ARE MUTUALLY EXCLUSIVE. SQLCODE=-628, SQLSTATE=42613,
DRIVER=4.17.36 SQL Code: -628, SQL State: 42613
create function regexp_tokenize_number(
source varchar(1000))
returns table (tok integer)
SPECIFIC regexp_tokenize_number
LANGUAGE SQL
QUALIFIER KGT
DETERMINISTIC
NO EXTERNAL ACTION
return
select tok
from xmltable('for $id in tokenize($s,",") return <i>{string($id)}</i>'
passing cast(source as varchar(1000)) as "s"
columns
tok integer path 'if (. castable as xs:integer) then xs:integer(.) else ()'
) t
DB2 11 在 Windows
DB2 for IBM i 不支持这样的 XPATH 语法。
这适用于 Db2 for LUW,但不适用于 DB2 for IBM i。
QUALIFIER
关键字在这两个 DB2 版本的 CREATE FUNCTION
语句中未被允许引用。
我正在使用如下的字符串分词器代码——它来自我之前的问题。它在没有 QUALIFIER 的情况下工作正常但是当我向它添加 QUALIFIER KGT(架构名称)时 - 我收到错误消息:
THE CLAUSES ARE MUTUALLY EXCLUSIVE. SQLCODE=-628, SQLSTATE=42613, DRIVER=4.17.36 SQL Code: -628, SQL State: 42613
create function regexp_tokenize_number(
source varchar(1000))
returns table (tok integer)
SPECIFIC regexp_tokenize_number
LANGUAGE SQL
QUALIFIER KGT
DETERMINISTIC
NO EXTERNAL ACTION
return
select tok
from xmltable('for $id in tokenize($s,",") return <i>{string($id)}</i>'
passing cast(source as varchar(1000)) as "s"
columns
tok integer path 'if (. castable as xs:integer) then xs:integer(.) else ()'
) t
DB2 11 在 Windows
DB2 for IBM i 不支持这样的 XPATH 语法。
这适用于 Db2 for LUW,但不适用于 DB2 for IBM i。
QUALIFIER
关键字在这两个 DB2 版本的 CREATE FUNCTION
语句中未被允许引用。