函数DB2表函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数DB2表函数相关的知识,希望对你有一定的参考价值。
有人知道如何在DB2中获得该结果?
询问
Example :
SELECT * FROM TABLE(FunctionName('1||2||3',||)) ;
第一个是带有值的参数,第二个是带有分隔符的参数。
结果:
Column
1
2
3
我在该查询上添加的值基于参数和分隔符。
正如我上面所说,行是由管道中断。我没有PL / SQL的大背景。
我正在使用DB2 v11.1
答案
所以我一直面临这个问题,我找到了解决方案:
CREATE OR REPLACE FUNCTION Test(
Data_1 CLOB(1M), Delimtator VARCHAR(12))
RETURNS TABLE (
FieldData varchar(2048))
LANGUAGE SQL
BEGIN
DECLARE dInic INTEGER DEFAULT 1 ;
DECLARE dFim INTEGER DEFAULT 0 ;
DECLARE Rowid1 INTEGER DEFAULT 0;
DECLARE Campo VARCHAR(2048);
IF Data_1 IS NULL THEN
RETURN;
END IF;
SET dFim=LOCATE(Delimtator,Data_1);
WHILE dFim>0 DO
SET Campo=SUBSTRING(Data_1,dInic,dFim-dInic);
PIPE (Campo);
SET dInic=dFim+LENGTH(Delimtator);
SET dFim=LOCATE(Delimtator,Data_1,dFim+LENGTH(Delimtator));
END WHILE;
SET Campo=SUBSTRING(Data_1, dInic,LENGTH(Data_1)-dInic+1);
PIPE (Campo);
RETURN;
END@
以上是关于函数DB2表函数的主要内容,如果未能解决你的问题,请参考以下文章