【问题标题】:Function DB2 Table Function函数 DB2 表函数
【发布时间】:2017-12-27 12:41:55
【问题描述】:

有人知道我如何在 DB2 中得到下面的结果吗?

查询

Example : 

    SELECT * FROM TABLE(FunctionName('1||2||3',||)) ;

第一个是带值的参数,第二个是分隔符。

结果:

    Column

    1
    2
    3

我在该查询中输入的值基于参数和分隔符。

正如我上面所说,行被管道打破。我对 PL/SQL 没有丰富的背景。

我正在使用 DB2 v11.1

【问题讨论】:

标签: sql db2 pipe


【解决方案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@

【讨论】:

  • 我喜欢你这样做。你能评论一下代码吗?
猜你喜欢
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多