GARANTIR DESCONTO

Fórum Parametros com cadeia de valores Function/Procedures #28976

10/03/2008

0

Saudações,

Estou com um problema ao fazer uma função no oracle.

Por exemplo, tenho uma função q me retorna em uma unica coluna, os nomes de varios clientes. O Codigo deles são passadas para a função do o racle como parametros.

CREATE OR REPLACE Function MONTACORES_FAMILIA(PCODCLI IN VARCHAR2) RETURN VARCHAR2 IS
    XRESULTADO VARCHAR(200);

    CURSOR TCLI IS
        SELECT CLI.CODCLI, CLI.RAZSOC FROM TBCLIENTES CLI WHERE CLI.CODCLI IN (PCODCLI);
    REGCLI TCLI¬ROWTYPE;

BEGIN
    XRESULTADO := ´´;
    
    

    OPEN TCLI;
    LOOP
        FETCH TCLI
            INTO REGCLI;
        EXIT WHEN TCLI¬NOTFOUND;
        IF XRESULTADO IS NOT NULL THEN
            XRESULTADO := XRESULTADO || ´´;
        END IF;
        XRESULTADO := XRESULTADO || REGCLI.CODCLI || ´-´ || REGCLI.RAZSOC;
    END LOOP;
    CLOSE TCLI;

    RETURN XRESULTADO;
END;


o Problema é o seguinte...

o cursor tá buscando varios clientes... pois o parametro PCODCLI RECEBE UMA CADEIA de caracteres, mas o oracle nao le os valores separados por vigula ex. 5,2 ele nao le 5 depois 2 e sim 5,2.

Existe alguma maneira d se fazer esse tipo d select com um curso dentro de uma função?

Obrigado.


Turim

Turim

Responder

Posts

10/03/2008

Flyskin

crie uma function que faça isto para você, ou seja, receba a string delimitada por parâmetro e realiza um loop extraindo os valores entre o delimitador...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar