Skip to content

informix to postgres: VARCHAR(100) function return removed #22

@strk

Description

@strk

This informix function:

CREATE FUNCTION cf_cde_ParseRight( avc_ref VARCHAR(100) )
RETURNS VARCHAR(100) WITH (NOT VARIANT);
    
    DEFINE  li_pos      INTEGER;
    DEFINE  lvc_return  VARCHAR(100);
    
    LET lvc_return = UPPER(TRIM(avc_ref));
    IF NVL( lvc_return, '' ) != '' THEN
        LET li_pos = crs_InStr(1, lvc_return, ' & ');
        IF li_pos > 1 THEN
            LET lvc_return = SUBSTRING(lvc_return FROM li_pos + 3) ;
        END IF
    END IF;

    RETURN TRIM(lvc_return);
END FUNCTION;

Gets converted to this PostgreSQL function:

CREATE OR REPLACE FUNCTION cf_cde_ParseRight( avc_ref VARCHAR(100) )
RETURNS AS $$
 VARCHAR(100) WITH (NOT VARIANT);

    DECLARE  li_pos      INTEGER;
     lvc_return  VARCHAR(100);
BEGIN

    lvc_return := UPPER(TRIM(avc_ref));
    IF COALESCE( lvc_return, '' ) != '' THEN
        li_pos := crs_InStr(1, lvc_return, ' & ');
        IF li_pos > 1 THEN 
            lvc_return := SUBSTRING(lvc_return FROM li_pos + 3) ;
        END IF;
    END IF;

    RETURN TRIM(lvc_return);
END;
$$ LANGUAGE plpgsql;

See the missing return type in RETURNS AS $$

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions