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]
>
> 

Responder a