DB2 - 如何使用带有2个参数的LTRIM标量函数?

时间:2013-08-27 17:52:21

标签: database db2

我是DB2的新手(使用版本10.1),我正在尝试在测试查询中执行一个简单的ltrim函数。

select ltrim(',1,2,3,4', ',') from sysibm.sysdummy1;

这会导致以下错误:

DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=LTRIM;FUNCTION, DRIVER=3.65.77

根据文档here,我的示例似乎应该有效。请注意,我可以使用替代trim函数 1-arg版本的ltrim

select trim(l ',' from ',1,2,3,4') from sysibm.sysdummy1;
select ltrim(' test') from sysibm.sysdummy1;

这些工作正常!

ltrim的2-arg形式与我提供的其他示例之间是否存在一些根本区别?

3 个答案:

答案 0 :(得分:1)

在这里做一些猜测,但你确定你在10.1吗?您尝试使用的该功能版本似乎已添加到10中,因此如果您使用的是9.x,则无法使用。

如果您是,您可以检查并查看您的架构路径是否包含SYSIBM

SELECT CURRENT_PATH FROM SYSIBM.SYSDUMMY1

该函数的“旧”单参数版本位于SYSFUN,(如果您的路径不包含SYSIBM)可能是您仍然可以使用该版本的原因。

如果您的路径中没有SYSIBM,您可以尝试使用以下命令进行更改:

SET PATH = SYSIBM, CURRENT_PATH

答案 1 :(得分:1)

此功能为added in DB2 10.1 fix pack 2 - 您可能需要升级。

答案 2 :(得分:0)

为什么不试试STRIP()

VALUES STRIP(',1,2,3,4', L, ',');

(旁注:使用VALUES语句更简单,而不是SELECT FROM SYSIBM.SYSDUMMY1)