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.
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.
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
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)