电脑技术学习

DB2用户定义函数实现多种语言的排序

dn001
  运行 bldrtn 脚本来编译这个 UDF: bldrtn sortkey  将 sortkey(在 Windows 上是 sortkey.dll)文件复制到 sqllib/function 中。连接到数据库,并运行 DDL 脚本来对这个函数进行编目:  db2 connect to sample  db2 -tvf createfn.db2  注重,假如以这种方式编译这个 UDF,那么在运行它的任何机器上必须完整地安装 ICU。  使用 SORTKEY UDF  语法  >>--SORTKEY--(--string-expression--,--collation-name--)--><  这个 UDF 的模式是 ICU。假如模式 ICU 在 SQL PATH 中,那么就不必对这个 UDF 进行显式限定引用。  SORTKEY UDF 返回一个 VARCHAR(1200) FOR BIT DATA 字符串,代表在指定的 collation-name 中 string-expression 的排序键。假如排序键的长度超过 1200 字节,那么排序键被截断并返回一个警告(SQLSTATE 01HKY)。SORTKEY 的结果是可空的。假如任何参数是 null,那么结果就是 NULL。  可以对两个字符串的 SORTKEY 结果进行二进制比较,从而判定它们在指定的 collation-name 中的次序。为了让比较有意义,使用的 SORTKEY 结果必须来自相同的 collation-name。  string-expression  这个表达式返回一个 CHAR、VARCHAR、GRAPHIC 或 VARGRAPHIC 字符串,UDF 要判定这个字符串的排序键。string-expression 的最大长度是 100 个字符(SQLSTATE 22001)。假如 string-expression 是 CHAR 或 VARCHAR,这个表达式必须不是 FOR BIT DATA (SQLSTATE 42846)。假如 string-expression 是空字符串,那么结果是一个具有非零长度的有效排序键。  collation-name  这个字符串表达式指定在判定排序键时使用的排序规则。collation-name 的值不是大小写敏感的,而且必须是空字符串(对应于默认的 UCA 排序)或者 “排序规则名 中定义的一个名称。(SQLSTATE SKCOL)。