函数DB2表函数
问题描述:
有人知道如何在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;
[email protected]
+0
我喜欢你这样做。你能否评论这些代码? – danny117
你的意思是'SELECT * FROM TABLE(使用functionName(“1 || 2 || 3','||'));' – mao
可能的重复https://*.com/questions/18961996/how-to-split-a-string-value-based-on-a-delimiter- in-db2 – mao