PL SQL函数

时间:2015-07-14 11:36:27

标签: oracle

我有以下错误:

  

Bl9StackablePromotionModule :: createPromoPeriodMap发生故障。   找到订户ID 123的重复促销,提供ID = 123,报价   实例123,收费代码= ABC,生效日期= 20150707

现在我只想获取订阅者,提供ID,提供实例,收费代码,生效日期。

为此,我创建了以下功能:

CREATE OR REPLACE FUNCTIONGetdyna1 ( att  IN VARCHAR, attName IN VARCHAR ) RETURN VARCHAR IS 
    start_index INTEGER := 0; 
    end_index INTEGER := 0; 
    retVal VARCHAR(100); 
    tmpAtt VARCHAR( 4000 ); 
    tmpAttName VARCHAR( 4000 ); 

BEGIN 
    tmpAtt := UPPER( att ) ; 
    tmpAttName := UPPER( attName ); 


    start_index := INSTR( tmpAtt , tmpAttName ); 

    IF( start_index = 0 ) 
    THEN 
        RETURN 'NOTFOUND'; 
    END IF; 

    start_index := start_index + LENGTH( tmpAttName ); 
    end_index := INSTR ( tmpAtt , '#' , start_index  ) ; 

    retVal := SUBSTR( att, start_index  + 1, end_index - start_index  - 1 ); 

    RETURN retVal; 

END Getdyna1; 
/

我在查询

下运行
select GETDYNA1(error_description,'subscriber')subscriber,cycle_seq_no from error ;

但它没有给我"订阅者"值。

0 个答案:

没有答案