Db2IBM PureData System for Analytics (Netezza) 内置函数和 SQL 扩展工具箱函数的兼容性

Db2® 产品提供了许多在 IBM PureData® System for Analytics (Netezza®) 中可用的相同函数。在某些情况下,您必须使用替代项,例如,名称不同但提供类似支持的 Db2 函数。

下列各表中列出的 Netezza 函数没有名称和行为相同的相应 Db2 函数。如有可能,将会给出这些 Netezza 函数的替代项。

Netezza SQL 函数

表 1. 模糊字符串搜索函数
Netezza 函数 Db2 替代项
dle_dst 没有替代项。
le_dst 没有替代项。
表 2. 语音匹配函数
Netezza 函数 Db2 替代项
dbl_mp 没有替代项。
nysiis 没有替代项。
pri_mp 没有替代项。
score_mp 没有替代项。
sec_mp 没有替代项。
表 3. 值函数
Netezza 函数 Db2 替代项
current_catalog 创建会话变量。
current_db 创建会话变量。
current_tx_path 创建会话变量。
current_tx_schema 创建会话变量。
current_userid 创建会话变量。
current_useroid 创建会话变量。

Netezza SQL 扩展函数

表 4. 三角函数
Netezza 函数 Db2 替代项
pi 创建用户定义函数 (UDF)。
表 5. 随机数函数
Netezza 函数 Db2 替代项
setseed 将种子值传递给 RANDOM 函数。
表 6. 数字函数
Netezza 函数 Db2 替代项
dceil 使用输入类型为 DOUBLE 的 CEIL 函数。
dfloor 使用输入类型为 DOUBLE 的 FLOOR 函数。
fpow 使用输入类型为 DOUBLE 的 POW 函数。
numeric_sqrt 使用输入类型为 DECFLOAT 的 SQRT 函数。
n! 没有替代项。
表 7. 二进制数学函数
Netezza 函数 Db2 替代项
intNshl 使用二进制补码乘法。
intNshr 使用二进制补码除法。
表 8. 日期和时间函数
Netezza 函数 Db2 替代项
age(两个版本) Db2 AGE 函数可用,但返回 INTEGER。
duration_add 使用标签持续时间或使用日期、时间或时间戳记算术,如日期时间运算和持续时间所述。
duration_subtract 使用标签持续时间或使用日期、时间或时间戳记算术,如日期时间运算和持续时间所述。
timeofday 将 VARCHAR_FORMAT 函数与 CURRENT_TIMESTAMP 专用寄存器配合使用。
表 9. 字符串函数
Netezza 函数 Db2 替代项
translate Db2 TRANSLATE 函数可用,但此函数的选项缺省顺序与 Netezza translate 函数的选项顺序不同。要对 Db2 TRANSLATE 函数启用 Netezza 选项顺序,请将 SQL_COMPAT 全局变量设置为 'NPS'
unichr 没有替代项。
unicode 没有替代项。
unicodes 没有替代项。
表 10. 转换函数
Netezza 函数 Db2 替代项
hex_to_binary 使用 HEXTORAW 函数。
hex_to_geometry 没有替代项。
int_to_string 没有替代项。
string_to_int 没有替代项。
表 11. 其他非聚集函数
Netezza 函数 Db2 替代项
get_viewdef 查询 SYSCAT.VIEWS TEXT 列。
表 12. 其他函数
Netezza 函数 Db2 替代项
dense_rank 此函数仅在 OLAP 查询中受支持。
rank 此函数仅在 OLAP 查询中受支持。
trim 在较为复杂的用法中存在差异。

SQL 扩展工具箱函数

表 13. SQL 扩展工具箱函数
SQL 扩展工具箱函数的类别 特定函数 Db2 替代项
XML 所有函数,例如,IsValidXML 在 Netezza XML 函数与 Db2 XML 函数之间不存在一对一映射。请使用相应的 Db2 XML 函数。
数据转换 compress、compress_nvarchar、decompress、decompress_nvarchar、uudecode 和 uuencode 函数 没有可用的替代项。但是,缺省情况下,Db2 产品会对 BLU 表使用压缩,因此您可能不需要自己在列级别压缩数据。
encrypt、encrypt_nvarchar、decrypt、decrypt_nvarchar、fpe_decrypt 和 fpe_encrypt 函数 Db2 数据库已加密。但是,如果要使用函数,请考虑使用 Db2 ENCRYPT、DECRYPT_BIN 和 DECRYPT_CHAR 函数。要进行屏蔽,您可使用行列访问控制 (RCAC)。
散列 hash_nvarchar 函数 通过使用 Db2 HASH 函数,您可以创建名为 hash_nvarchar 的有源函数。
文本分析函数 regexp_extract_all、regexp_extract_all_sp、regexp_extract_sp 和 regexp_replace_sp 函数 请考虑重新编写代码以使用 Db2 REGEXP_EXTRACT 函数。
数组函数 所有函数,例如 add_element 请考虑使用 SQL PL 数组支持。
集合函数 collection 和 element_type 函数 请考虑改为使用 SQL PL 数组支持。
其他函数 corr、covar_pop 和 covar_samp 函数 以下 Db2 函数可用,这些函数具有对应于 Netezza 名称的同义词:
  • CORR 是 CORRELATION 函数的同义词。
  • COVAR_POP 是 COVARIANCE 函数的同义词。
  • COVAR_SAMP 是 COVARIANCE_SAMP 函数的同义词。
mt_random 函数 如果不需要使用 Mersenne Twister 伪随机数生成器,请使用 Db2 RANDOM 函数。