Valeu Eduardo, mas o que eu preciso, ou precisava, já que consegui resolver o problema usando a função GREATEST, é criar uma function que receba vários parâmetros.
essa função eu pretendia usar diretamente em algumas sql´s que tenho na minha aplicação. no seu exemplo eu consigo passar vários valores para a function, mas através de um único parâmetro, que é um record. mesmo assim assim valeu pela força, agora eu to mais é na curiosidade mesmo de como criar uma função parecidade com o GREATEST, que permite passar um número indefinido de parâmetros. se alguém tiver uma idéia de como esse tipo de função é implementada me avise. abraço, Fabiano. 2008/5/27 Eduardo Leite <[EMAIL PROTECTED]>: > Fabiano, tenho algo parecido com isso.. dá uma olhada.. > > declare > -- Especificacao do type > type rec_prm is record ( p_param varchar2(100), > p_value varchar2(1000), > p_type varchar2(50), > p_format varchar2(100) > ); > type tab_prm is table of rec_prm index by binary_integer; > tTab_prm tab_prm; > -- Procedimento que recebera os valores > procedure prc_prm ( p_tab_prm tab_prm ) is > l_dHoje Date; > begin > dbms_output.put_line( '*************************************' ); > for c in 1..p_tab_prm.count > loop > if p_tab_prm(c).p_type = 'Date' then > l_dHoje := To_date( p_tab_prm(c).p_value, p_tab_prm(c).p_format ); > end if; > dbms_output.put_line( 'Param=' || p_tab_prm(c).p_param || > ' Value=' || p_tab_prm(c).p_value || > ' Type=' || p_tab_prm(c).p_type || > ' Format=' || p_tab_prm(c).p_format ); > end loop; > dbms_output.put_line( '*************************************' ); > dbms_output.put_line( 'Total de parametros ' || p_tab_prm.count ); > dbms_output.put_line( '*************************************' ); > end; > begin > -- Linha 1 > tTab_prm(1).p_param := 'Nome:'; > tTab_prm(1).p_value := 'Eduardo'; > tTab_prm(1).p_type := 'Char'; > tTab_prm(1).p_format := null; > -- Linha 2 > tTab_prm(2).p_param := 'Hoje:'; > tTab_prm(2).p_value := '27/05/2008 18:10:10'; > tTab_prm(2).p_type := 'Date'; > tTab_prm(2).p_format := 'dd/mm/yyyy hh24:mi:ss'; > prc_prm( p_tab_prm => tTab_prm ); > end; > / > > Edu > > Fabiano Arndt <[EMAIL PROTECTED]> escreveu: Gleyson, eu já possuo > algumas function/procedures em que uso > > collections, mas agora preciso de algo diferente. > > onde vou usar a function, não tenho como passar um array, tenho que > passar os parâmetros diretamente. > > o que eu gostaria mesmo é criar uma function parecida com o GREATEST > que retorna o maior valor da lista de argumentos, > > inclusive acho que essa função por hora já vai resolver meu problema e > não irei nem precisar criar outra função. > > mas se alguem souber como criar uma função desse tipo, me avise. > > valeu, abraço. > > Fabiano. > > 2008/5/27 Gleyson Melo <[EMAIL PROTECTED]>: >> Fabiano, >> >> Acredito que a melhor forma de resolver o seu problema seja estudar um >> pouquinho de Collections do PL/SQL e receber, como parâmetro da função, >> uma >> coleção de objetos (Sim, uma matriz). >> >> 2008/5/27 Fabiano Arndt <[EMAIL PROTECTED]>: >> >>> Bom dia pessoal, >>> >>> to com uma certa dificuldade para criar uma função que receba >>> múltiplos parâmetros, ou seja >>> uma função que eu possa passar quantos parâmetros eu quiser. >>> >>> por exemplo, >>> >>> func(1, 2, 3, 4, 5) >>> ou >>> func(10) >>> ou apenas >>> func() >>> ou qualquer outro número de parâmetros >>> >>> gostaria também de saber como eu faria nesse caso pra saber quantos >>> parâmetros foram passados para a function e como acessá-los >>> >>> uso 9i. >>> >>> obrigado, >>> Fabiano. >>> >>> >> >> -- >> Atenciosamente, >> Gleyson Melo >> Oracle Database 10g Administrator Certified Professional >> >> [As partes desta mensagem que não continham texto foram removidas] >> >> > > > > > --------------------------------- > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para > armazenamento! > > [As partes desta mensagem que não continham texto foram removidas] > >