0

我是 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

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

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

这些工作正常!

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

4

3 回答 3

1

此功能是在 DB2 10.1 修订包 2 中添加的——您可能想要升级。

于 2013-08-29T15:18:00.573 回答
1

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

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

SELECT CURRENT_PATH FROM SYSIBM.SYSDUMMY1

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

如果SYSIBM不在您的路径中,您可以尝试使用以下方法更改它:

SET PATH = SYSIBM, CURRENT_PATH
于 2013-08-27T22:21:12.170 回答
0

为什么不试试STRIP()呢:

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

(旁注:使用 VALUES 语句比 SELECT FROM SYSIBM.SYSDUMMY1 更简单)

于 2013-08-27T21:49:14.537 回答