Seguramente, existem varios outros metodos, aqui vai um exemplo de mais 
um deles.

[EMAIL PROTECTED]> create or replace type array as table of varchar2 (50);
   2  /

Type created.

[EMAIL PROTECTED]>
[EMAIL PROTECTED]> create or replace function f ( p_string in varchar2 )
   2  return array
   3  is
   4      l_string        varchar2(50) default p_string || ',';
   5      l_data          array := array();
   6      n               number;
   7  begin
   8    loop
   9        exit when l_string is null;
  10        n := instr( l_string, ',' );
  11        l_data.extend;
  12        l_data(l_data.count) :=
  13           ltrim( rtrim( substr( l_string, 1, n-1 ) ) );
  14        l_string := substr( l_string, n+1 );
  15    end loop;
  16    return l_data;
  17  end;
  18  /

Function created.

[EMAIL PROTECTED]> show error
No errors.
[EMAIL PROTECTED]> select * from t;

             X
-------------
             2
             3
             4
            45
            36
            26
            74

7 rows selected.

[EMAIL PROTECTED]> select cast( column_value as number ) x
   2    from table( cast( f('1,2,3,4,5,6,7,8') as array ) )
   3  /

             X
-------------
             1
             2
             3
             4
             5
             6
             7
             8

8 rows selected.

[EMAIL PROTECTED]>
[EMAIL PROTECTED]> select cast( column_value as number ) x
   2    from table( cast( f('1,2,3,4,5,6,7,8') as array ) )
   3  minus
   4  select x from t;

             X
-------------
             1
             5
             6
             7
             8

5 rows selected.

--
Marcio Portes
http://mportes.blogspot.com


Rafael Mueller wrote:
> O problema é que A não é uma tabela, é uma string, apenas uma
> sequencia de códigos
> 
> On 7/12/05, Gari Julio Einsfeldt <[EMAIL PROTECTED]> wrote:
> 
>>Use a teoria dos conjuntos:
>>
>>select A from X
>>minus
>>select B from Y
>>/
>>
>>O resultado sera a lista de valores de A que não existem em B.
>>
>>-----Mensagem original-----
>>De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
>>nome de Rafael Mueller
>>Enviada em: terça-feira, 12 de julho de 2005 10:08
>>Para: oracle_br@yahoogrupos.com.br
>>Assunto: [oracle_br] problema sql
>>
>>
>>Olá,
>>
>>não estou conseguindo montar o sql para fazer o seguinte. Eu recebo
>>uma sequencia com n códigos (digamos 1,2,3,4,5,6,7,8) e tenho uma
>>tabela com vários códigos(2,3,4,45,36,26,74).
>>
>>Preciso saber como seria o SQL para eu descobrir quais códigos da
>>sequencia que eu recebo não estão na tabela. (Neste caso 1,5,6,7,8)
>>
>>Grato
>>
>>
>>______________________________________________________________________
>>
>>Cancelar assinatura...: [EMAIL PROTECTED]
>>Moderadores da lista....:Dorian Anderson Soutto [EMAIL PROTECTED]
>>Fernanda Damous [EMAIL PROTECTED]
>>Alisson Aguiar [EMAIL PROTECTED]
>>______________________________________________________________________
>>http://br.groups.yahoo.com/group/oracle_br/
>>______________________________________________________________________
>>
>>Sair da Lista...: [EMAIL PROTECTED]
>>Links do Yahoo! Grupos
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>______________________________________________________________________
>>
>>Cancelar assinatura...: [EMAIL PROTECTED]
>>Moderadores da lista....:Dorian Anderson Soutto [EMAIL PROTECTED]
>>Fernanda Damous [EMAIL PROTECTED]
>>Alisson Aguiar [EMAIL PROTECTED]
>>______________________________________________________________________
>>http://br.groups.yahoo.com/group/oracle_br/
>>______________________________________________________________________
>>
>>Sair da Lista...: [EMAIL PROTECTED]
>>Links do Yahoo! Grupos
>>
>>
>>
>>
>>
>>
>>
>>
> 
> 
> 
> ______________________________________________________________________
> 
> Cancelar assinatura...: [EMAIL PROTECTED]
> Moderadores da lista....:Dorian Anderson Soutto [EMAIL PROTECTED] 
> Fernanda Damous [EMAIL PROTECTED] 
> Alisson Aguiar [EMAIL PROTECTED]
> ______________________________________________________________________
> http://br.groups.yahoo.com/group/oracle_br/ 
> ______________________________________________________________________
> 
> Sair da Lista...: [EMAIL PROTECTED] 
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 


______________________________________________________________________

Cancelar assinatura...: [EMAIL PROTECTED]
Moderadores da lista....:Dorian Anderson Soutto [EMAIL PROTECTED] 
Fernanda Damous [EMAIL PROTECTED] 
Alisson Aguiar [EMAIL PROTECTED]
______________________________________________________________________
http://br.groups.yahoo.com/group/oracle_br/ 
______________________________________________________________________

Sair da Lista...: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a